I'm assuming all the crystals are on the same map? Does each one have to go in a specific spot, or do you just have X crystals, X destinations, and it doesn't matter which one goes where, as long as all the destinations have a crystal on them?
If that's the case, draw on each destination tile with a region id (the same one).
Create a common event that does this (I'll assume Event 1 is one of your crystals, and you've used region #15 - change as necessary):
Code:
Change Variables: Event's X Position = Game Data > Event 1's X position
Change Variables: Event's Y Position = Game Data > Event 1's Y position
Get Location Info: Event's Region ID = Region ID from Event's X Position and Event's Y Position
Conditional Branch: Event's Region ID is not 15
Exit Event Processing
End
<now repeat that for each of the other crystal events - you can use the same variables as above - you don't have to have a set for each event>
Comment: if we reach this line, all of the crystals are on tiles with region 15
Control Switches: Way Out Found = ON
Then on each of your crystal events, do a move away from player with wait for completion, then call that common event. You might want to add an extra page to each one with the Way Out Found switch as a condition, so it can't be moved anymore once the way out is found.
And of course condition the exit event with the same switch, so it's only visible after all crystals are placed correctly.
So each time you push a crystal, it will move, then the common event will be called to see if ALL crystals are on the correct region tile. If they're not, the common event will drop out and the switch will not be turned on. If they ARE all on the correct region tile, the switch will be turned on, and the exit will be visible.