I know one quick method for calculating convex meshes. It handles things as interfaces. Myself have found it as really good solution. The idea is to make interval tests from surface normals. It's quite simple and works. If you need to detect contact points, you need another algothrim for it because this doesn't calculate them. It's also easy to do basic piercing detection for this algothrim, that way it cannot go trough objects with high velocities and low integration values.
2) You can still use sphere based collision detection to cut down on testing everything, ie, it would only be tested if there is a collision detected with the spheres.
Oh no no. You cut out the important part called oct-tree, maybe quad-tree is good too for this kind of game. This way you can divide out very many calculations at once. The quad tree cuts any collision detection calculating into minimum. I gues you have this already because you can render the game at all on my comp and you have some values in your settings.exe nobody knows how to use.
And one thing yet, Warlord Zsinj...
CONVEX COLLISION MESH IS NOT SAME AS RENDERED MESH!!!
If you use rendered mesh as convex collision mesh, you encounter problems really soon, it's very possible your rendered mesh is not convex.
Another problem is that, your collision meshes are something like 12-40 triangles, drawn meshes are ab. 500 or even 4000 triangles. So they are really little much different to being mind as same thing.