Thanks Virtual Ace.
Those steps actually make sense. So dot-product actually returns the degree difference between two vectors? Anyways, would I need to orthonomalize my matrix after I rotate on this arbitrary axis.
As far as I'm aware, orthonomalization is used to transform distorted axis' to 90 degree axis' but is it needed in this case.