Much more reliable snapping behaviour - use normals and offsets in local space instead