Yeah, I do agree that your method would be better for cleanliness and is much easier to understand, CFrames get very complicated, very fast.
Also, after a bit of tinkering, I’ve found a better method as the one I suggested is occasionally inaccurate.
local Motor_6D = Instance.new("Motor6D")
Motor_6D.Name = "Link_"..Index
Motor_6D.Parent = script:WaitForChild("Motors")
local Right_Hand: BasePart = Character:FindFirstChild("Right Arm") or Character:FindFirstChild("RightHand")
Motor_6D.C1 = Tool.Grip * CFrame.Angles(math.rad(90), 0, 0)
Motor_6D.C0 = Right_Hand.RightGripAttachment.CFrame -- likely different instance names for R15