`m` unit when used after `cm`/`mm`/etc. ones would get ignored, and the alt version of miles would be used instead. The root of the issue is that, in `unit_find_str`, once we get a 'hit' for a unit, we check it's actual unit (since 'm' would also hit on 'cm', 'mm', etc.). In case that hit is not a valid unit one, we would just return NULL, breaking the cycle of checks over that unit, and hence missing all later usages of it. So now, in case we have an 'invalid unit hit', we immediately retry to find it within remaining string.