When I closed your previous file, Rhino/Grasshopper froze and then crashed. Not good!
Looking at your updated file, I see HUGE numbers of points and data tree paths (many empty) in the outputs, so it’s very likely that there are data tree mixups involved. Looking…
Later: How does this look? I flattened the output of MCX, then sorted those points by Z to choose the lowest point as the next way forward. Finally, added the red group to end the loop when a duplicate point is encountered, a “dead end detector”.
flow_tests_2019Nov17a.gh (60.7 KB)
Using a different starting point (yellow), a different dead end is encountered after 53 iterations.
Note that in general, flattening is “bad”. It will prevent handling multiple starting points at the same time, for example, though I’m not sure if the loop would handle that anyway? Will try Shift Paths instead of flatten? Uh, nope. So for only one starting point at a time, flatten is fine.