Hey!, Sorry for getting back so late, i just kinda was lazy and didnt want to code for a bit.
I wont be going through the entire information providing responses to each bit as what you said pretty much all makes sense and lines up with the code, although i do have a question;
As for how cross works here (and in general), i read through this post but i still dont really understand how it works here
if areApproximatelyEqual(part.CFrame.RightVector:Cross(Vector3.yAxis).Magnitude, 0) then verticalAxisInLocalCoordinateSystem = "X" elseif areApproximatelyEqual(part.CFrame.UpVector:Cross(Vector3.yAxis).Magnitude, 0) then verticalAxisInLocalCoordinateSystem = "Y" elseif areApproximatelyEqual(part.CFrame.LookVector:Cross(Vector3.yAxis).Magnitude, 0) then verticalAxisInLocalCoordinateSystem = "Z" else error("Part orientation is incompatible for this.") end (Lines 11-21) and here
areApproximatelyEqual(otherAttachmentWallDirection:Cross(wallDirection).Magnitude, 0) (Line 67) On a unrelated note
How would it even be possible for it to error with incompatible part orientation?