That was the main issue (in both T46455 and T46690), solved by 'flattening' those chains (v1 -> v2 ->v3 etc.) before calling `CDDM_merge_verts()`. Also added note to `CDDM_merge_verts()` that it does not support chained mapping, along with a basic assert that should catch most of those cases in future. The logic of 'following mapping' was also rather broken, making a special case here when using object-controlled offset is very weak. Further more, blindly following mapping in this case was far from ideal, this could end to merging vertices rather far from each other. To address this issue, we now always follow mapping, but only as long as 'final' vertex remains close enough from mapped one. Finally, the search of 'closest' vertex to merge with was also quite bad, would just pick the first one matching distance limit, instead of using the actual closest one - could lead to rather ugly geometry deformations in case one would use not-so-small merge threashold!