This is how I pass the matrix to gl,
glmultmatrixd(Double Ptr(Varptr rotation.mat[0]) )
or same par, with glLoadMatrixD depending on situration.
Wierd thing is I get identical results whichever one I use to define the camera's rotation. Which is the first rotation, and only in the simple test.