Почему Мексика, но Мехико?
Название México — и города, и страны — происходит из языка науатль, на котором говорили (и говорят) ацтеки. Они называли свою столицу Mēxihco,что произносилось примерно как «Мешико».
Вообще, изначально столица называлась Теночтитлан, но из-за обилия в городе храмов бога войны Мехитли, ему дали и второе название (суффикс "-ко" в Мешико обозначает место). Есть и другая версия, всё с тем же суффиксом места "-ко", но начало слова объясняется иначе: mētztli — это "луна", а xīctli — "пупок", получается "Город в пупке Луны".
В испанском XVI века присутствовал звук "ш", поэтому сказать по-ацтекски \Мешико\ испанцам не составляло труда. Записывался этот звук буквой "х", как в современном португальском (где México произносится как \Мешику\).
Вскоре в испанском языке звук \ш\ превратился в \х\, и полностью исчез, поэтому México из Мешико превратилось в Мехико. Сейчас обычно звук \х\ в испанском передаёт буква "j" (например, jamón — хамон, jalapeño — халапеньо, Juan — Хуан), но в случае Мексики оставили историческое написание как дань традиции, и это отдельная история.
Потому что не хватало ещё гордым ацтекам менять что-то в написании своей страны из-за того что какие-то там вонючие кастильцы что-то там решили в своём колонизаторском языке. Так что мексиканцы не приняли реформу Королевской академии испанского языка, которая в 1815 году постановила заменить все "х" на "j", и отказались писать Méjico, а в 1821 году победили в войне за независимость, и Королевская академия испанского языка больше их не беспокоила. В самой Испании разрешено писать оба варианта, но в 2001 году Академия всё-таки стала рекомендовать мексиканский вариант.
Ну а возвращаясь к истории слова: своё México испанцы передали остальным странам восточного полушария, но там, в основном, буква "х" произносилась как \кс\, поэтому получились такие варианты как французское Mexique \Мексик\, английское Mexico \Мексико\. Так что в итоге все определились — будет у них в обоих названиях (и города, и страны) \х\, \ш\ или \кс\.
И тут на сцену выходит русский язык, взявший произношение страны Мексика через центральноевропейские варианты, а произношение города Мехико — напрямую от испанцев.
Первое время у нас это слово выглядело как Мексика или Мексико, уже с середины XVIII века и далее, например:
В Америке воспоследовали весьма важные перемены: все испанские колонии, на материке лежащие, отделились от своего отечественного государства и объявили себя независимыми республиками; вот имена сих преобразовавшихся областей: Мексико, Соединенные области Средней Америки (Гватимало), Колумбия, Перу, Хили, наконец Соединенные области реки Платы.
[Общий взгляд на географические и политические перемены с 1818 года по 1824-й // «Вестник Европы», 1825]
А вот вариант названия города Мехико впервые официально появляется лишь в середине XX века.
Таким образом, в советское время, судя по всему, название страны оставили как было, потому что традиция давно сложилась. А название города постановили сделать более близким к испанскому произношению — для удобства разграничения или как дань уважения, уже не определить (по крайней мере я не нашла объяснений).
Просто названием страны занималось министерство иностранных дел, а названием города - историко-географическое общество. Или наоборот. А потом, когда поняли, что что-то не то то "а не пофиг ли? Вот ещё столько карт и учебников менять".