After one month working on this project, here is a full 3D update. I imported the intro level from Mario 64. Still using only one CPU (the game slows down as you can see) and my collision detection is really really really basic (only X/Z, using hardcoded bounding boxes, still no Y collision detection at the moment).
I didn't succeed yet in implementing a polygon-based collision detection (I would just cover the level with invisible huge bounding boxes/planes and detect collision on them) and I'm not sure if there is a way right now without using SGL.
As you can see, I didn't texture map the level (except for the ground floor) and I didn't add extra geometry on the ground (which I should to prevent the texture warping). Once the collision detection works correctly I'll be able to move to objects/ennemies implementation. I'm also considering adding tails following Sonic. In both cases that means I need to learn some AI programming. For the levels, I think I might try to randomly general levels at one point, which might be better than trying to create several levels. But, that's still far off!
EDIT : I just did a small texture map test, but I'm using the level from the DS version, which has extra geometry.
Video here :
https://youtu.be/RdzAl7iSfsI