What does Lanthorn know before play begins? Does it have a list of exits?
If so, I think it would make sense to place all the rooms as play begins based on those exits. During play, rooms would be revealed one by one, and exits would be drawn as they’re discovered/used, but the rooms wouldn’t shift their layout as much during play.
Also, it would be possible to generate a bunch of maps in bulk from a bunch of games and inspect them directly, without laboriously testing each one.