Unfortunately it's not that simple, that way I get values like 0,0,0 for xAxis and it's not any different from 0,0,-0.

Maybe I need to check for the direction vector (zAxis) and change the Up vector accordingly...