Using the ACos() code, I run into the problem of the object taking the longer route to reach the desired angle, at certain angles. Using the code I posted, here is the behavior. This is using a large dt value to make the rotation smoothed:
http://www.leadwerks.com/post/omega3.wmv
With a higher smoothing value, here you can see the body always takes the closest approach to reach the desired orientation:
http://www.leadwerks.com/post/omega4.wmv
I believe you, but I shouldn't have to write out a bunch of formulas on paper just to figure out how to rotate an object. I think that would be more useful as a basic command in the library. How many of your users even know what a quaternion is?