Take a look in the "3d engine" event sheet at the "On function newtexture" and "for each texture" events. In a nutshell each texture is grouped with four points via their unique id's, and each point is the used to set the position of the four corners of the texture.
All the collision detection is done on the "map" layer. When an object is moved on the "map" layer it's corresponding object is moved in 3d with the help of geometry and trigonometry.
All the 3d rotations are done with the following two formulas:
x = x *cos(angle) -y *sin(angle)
y = y *cos(angle) +x *sin(angle)
x and y can be changed depending on what axis you want to rotate around.