Using the 3d units, the lookatdirection function seems to orient units using the x axis as forward, as they will align their x axis with the velocity direction instead of their z axis.
I've tried messing with the LookAtDirection code and haven't been able to determine the issue. The math looks right, so I don't know if the x-forward assumption is made somewhere else I haven't found. This would be useful for most applications as the assumption is that z is forward.