I'm using this currently:
rjcf = rootc0 * CFrame.Angles(0,mouse.Hit.lookVector.x,0)
rjcf is "RootJoint CFrame" (the C0 of the torso) rootc0 is "RootJoint C0" (the default C0 rotation of the torso) This works, except if I turn around 180 degrees, then it's still looking the other side.
I solved this alone, using bodygyro.
I can't test this right now(very busy), but try:
rjcf = rootc0 * CFrame.Angles(0,mouse.Hit.lookVector.x,0) * CFrame.Angles(0,-math.pi,0);