here we go:
ANGLE test;
function EvilSOB ()
{
var vectot_test [3];
vec_set (vectot_test,vector (10,10,10));
vec_rotate (vectot_test, vector(0,0,0)); // rotation angles change here
vec_to_angle (test,vectot_test);
}
just put the angle test as "watched" variable, you can see that the angles of this vector is (45,35.26,0), this is 100% right
Now let us rotate it another 45 pan:
the result is (90,35.26,0), this is 100% right too

NOW, let us rotate it 30 pan and 10 tilt just change the rotation angles to 30,10,0 in the code
the result is: 81,42,0 this is totally wrong!
the right values are (75,45.26,0)
NOW, let us rotate it 10 tilt just change the rotation angles to 0,10,0 in the code
the result is: 51,42,0 this is totally wrong!
the right values are (45,45.26,0)
So, the calculations of tilt are affecting the pan and vice versa