Yeah I always wonder with these mobile ever changing mesh networks: how do they prevent messages from aimlessly looping around the network? With all the mobile devices they're too dynamic to make routing tables and broadcasting everything leads to network saturation really quickly. You could give them a very short TTL but then the reliability will suffer a lot.
Meshtastic has a TTL of up to 7 and (from what I've been able to understand) uses flood routing largely. In Northern Colorado (where I'm at) we don't have a particularly dense mesh, but are turning down from 7 because of congestion.
Meshcore seems to (I'm still learning on this) use a TTL of 64 and flood to find a route to a destination, then uses source routing for future packets, reverting to flooding again if that path fails (say a mobile repeater moves out of range).