rewrote the object rotation code using 100% more quaternions.