Thanks for the detailed response!
The grappling is probably quite a bit simpler than it looks: left/right click “throws” an invisible hand object in the direction of the mouse cursor. When that hits a wall, it stops and a force pushes the player towards it. The arms you see are just square sprites stuck to the centre of the player, rotated towards the hand objects, with their X dimension stretched to be as long as the distance from the player to that hand.