Hey chromaticcodex,
One possible approach:
1. For the exit objects, add a private text variable named "exitName".
2. For each exit object, set "exitName" to a unique name. ... (e.g. "snakeTunnel", "lavaTunnel", "spikeTunnel", "comfyPillowTunnel")
3. Do this for each layout, making sure the doors that are supposed to be linked between layouts have matching names.
4. Now, create a global variable named "gLastExitUsed". ... (globals are unchanged between layouts)
5. When the player leaves through an exit object, get the text in the exit's "exitName" and store it in the "gLastExitUsed" global.
6. Jump to the new layout.
7. On start of layout, pick the exit object with the "exitName" that matches the "gLastExitUsed" global. Place the player at that door, as if they just entered through it.