I live in Germany and I have the exact opposit experience from everything you just said. the only people that use "drei" or "halb fünf" etc. are those one generation older than me, and everyone says "null Uhr" or "vierundzwanzig Uhr" (depending on which day-crossing you're referring to), I have honestly never before heard the phrase "12 Uhr Mitternacht". "Die Party geht bis 24 Uhr" oder "..bis 0 Uhr". Nobody says "die Party geht bis 12 Uhr Mitternacht", do they?
I guess it depends on where you live exactly in D/A/CH shrug