I'm struggling with CFrame!

It’s not nasty because of its computation, I was more expressing its nasty in its non-communicative factor.

But I understand what you are saying, and yes you are correct that in the background I guess CFrame.lookAt uses the cross product to build the matrix anyways.