The snaking logic contains a lot of caching/optimisations and offsetting of the path which is tedious to re-compute when the path changes.
Also fixes some typos and reduces spelling suggestions to hints.
Plus a lot more implementation.