It's actually really simple.
1. I use my own map editor to make the maps, and it comes with a MAP_LOAD function. I set up my maps like so: layer 0 is collision, 1 is below the player, and 2 is above the player.
2. Then, if the player tries to move, it checks if there is a tile in the direction that they're moving in. If there isn't a tile, move there. Finally, I use some SPANIM to make it lookgood
[advertisement]
To load maps quickly and easily, use my Map Editor™, available in V360 Grab Bag™. [Key: QR441XM3]
Also, you can check for BG tiles by using BGGET().