That is confusing. "PM" is "post meridian" or, as I understand it, after the middle. One would think it wouldn't be PM until 12:01 or at least 12:00:01.
Which is why I, as you said, use "noon" and "midnight."
I can never remember it properly either but when someone reminds me (thanks samus12345) which way around it is it does kind of make sense.
If you think of 12:00 as literally an infinitesimal slice of time it's not really possible to give it an am/pm distinction, as it is literally the devider between the two. BUT, in a more real-life approach 12:00 is probably not an infinitesimal slice of time but the minute after a digital clock flipped to 12:00. That can be 12:00:00.00004 or 12:00:30 or 12:00:59.999944. And all those are indisputably pm.
Correct - technically, noon is neither am nor pm, but clocks and the like have to have SOMETHING there, so am for midnight and pm for noon was arbitrarily chosen.