The geometry problem is usually described as “polygon buffering,” although the Clipper library uses the term “offset” to mean the same thing. It’s a non-trivial problem, especially in geodetic coordinate space. Mission Planner uses a rather clever approach with the Clipper library, since Clipper only accepts integer arguments. The coordinates are first converted to UTM and then multiplied by a factor of 1000 to improve accuracy. So long as the spiral pattern doesn’t stray too far from a single UTM grid zone, the accuracy is quite good. Creating a transoceanic pattern would likely get a bit messy with that method…
I must admit, I’m curious what problem you’re trying to solve.
I recently had some success adding some small features to Mission Planner that were somewhat specific to lawnmowing path planning. You can gain access to those features by going to the help page and downloading the latest beta update.