The potential collision "bugs" mentioned here are from moving faster than the mover's own step_size, not world.icon_size. The DM Reference entry for Move() explains this. All you need to do is set step_size to at least the amount of pixels you're moving, because that causes the movement to be a "slide" rather than a "jump". Of course, for default movement to still work, you'd have to reset step_size to what it was before.
Fast-moving collisions, as well as slow-moving sub-pixel movements, are easily done using my Sub-Pixel Movement library.
Copyright © 2018 BYOND Software. All rights reserved.