@David_Logan Take all of the below with a giant asterisk, because I'm not totally certain. Also, feel free to say if I'm not making sense.)
I think the major axis DOES have directionality, because what it's using to calculate all the ellipse features is a matrix looking at the relative representation (bincount) in x vs y (or i vs j in the CP code) of the objects relative to their own centers. So you actually start with position information in there, which you can then ignore for things like length but can take advantage of to determine orientation.
If you look at the help for the numpy function, it says:
The quadrant (i.e., branch) is chosen so that arctan2(x1, x2) is the signed angle in radians between the ray ending at the origin and passing through the point (1,0), and the ray ending at the origin and passing through the point (x2, x1).
My interpretation of that is that it sets one end of the ellipse major axis as 0,0, sets the other according to the values calculated from the x/y information, and then draws the angle to the positive x axis.