"So why would they call you Major if you are just a civvy?"
Because on many army courses, they get the list of names and grades of attendees. They then convert C2 - Major and C1 - Lt Col and go from there.
Frankly its pretty cringeworthy on 2 accounts - listening to a Army guy get stroppy when you ask him not to call you Major - in my case, I asked to be called "Mister" or if he had to call me a military rank, then Lieutenant as thats the rank I've earned through my own efforts. Secondly its pretty dire when you hear f*ckwit CS's happily go round accepting being called Colonel. I despise that as much as the next man.