I can understand not wanting those long macro names in every equation.  I don't like the fact that we have nothing tying 0,1,2 to N,E,D anywhere.  You could consider using one of these alternative mechanisms to formalize the ordering assumption:

````#define WAY_N 0```` at the top of your file to get a shorter macro name.  Not ideal since we could evolve different "brief" names for these in different files.

Or just assert your assumptions at the top of the file and fail the compile when they aren't met so we can call attention to the extensive breakage this would cause at runtime if someone changes it by mistake.
````
#if WAYPOINT_POSITION_NORTH != 0
  #error OMG WAYPOINT_POSITION_NORTH is not 0
#endif
````