IPv6 routing isn't hierarchical, the address allocation is though. The idea being that by giving everyone enough space you can have major ISPs still having only having one prefix instead of dozens.
Additionally, by grouping a bit based on upstream providers it avoids people having to maintain routes for entities on the other side of the world. Instead you can have a general "north-america thataway" route.
I think that for mesh-networking you practically can't avoid having everybody know about everybody else. Unless you can find a way to based addresses that encode a location somehow. Suppose you assume that the mesh is approximately a 2D space, you could somehow make addresses correspond to your location. Then each node only needs to know exactly how to route to the nodes nearby and faraway nodes can be intelligently "guessed".
The trick would be to make the addresses an emergent property of the network. But there's no way to deal with "wormholes" which would be a (wired) connection which connected some point to some faraway point without passing though the nodes in between.
I'm sure this is an area that needs a lot of research.