How does one typically specify 3D objects in games ? Is .obj a good alternative ?
.obj is one of the easiest 3D formats to parse if you're doing it yourself. You can also export it from just about any modeling software. (I recommend Blender, but whatever you do, definitely don't do it yourself in code).
However, it sounds like you might be just starting out with this stuff, in which case I recommend you find and use a game engine (maybe start here) rather than trying to figure things out on your own. These problems have been solved a million times by thousands of other people, so why not use their work to your advantage?
Just an interesting side-note here:
Using z-axis as reference will make my ModelView matrix less expensive in terms of computation.
I doubt that. It's generally more expensive for the graphics card to do an early-out test that checks for special cases (like z-axis aligned matrices) than it is to just do the multiplication. This is because GPUs are heavily parallel and pipelined, to the point where basically every time you do a branch, both paths are actually executed, and the "wrong" branch path just gets discarded.
At any rate, even if there were a performance benefit, it would not be noticeable at all, even with a very advanced profiler.
My advice is, don't worry about performance until it becomes an issue. Pre-mature optimization is a common trap developers fall into.
Anyway that's my two cents. Good luck!