Thanks Sique - super informative. Makes more sense to me now, but I see a logic error in the naming (which may be why it was confusing before). A Major is called just a Major since he is above the Captains (like the Lt: "without any specification is the deputy of a captain", the Major, without any specification is above the Captains). OK. That's fine.
But the Major General is misnamed in that case - he is above the Colonels, but below the Generals. Should he not be called a Major Colonel then, and not a Major General? Or is the lessor Major misnamed, and should be called the Major Colonel? This seems like a logic flaw.
To carry it further, if we adopt the Major Colonel, then a Major General should be above the Generals, like the lessor Major is above the Captains.
This does not seem so easy.