Предположительно, путаница началась с того, что записывали топоним из языка науатль по правилам кастильского, и вместо уместной в испанском буквы “J” написали “X”. Впрочем, испаноговорящие, как правило, не путаются. Далее кто-то прочитал это слово по-русски, руководствуясь правилами английского, а поскольку это было название страны, а страна — женского рода, он приделал к получившемуся названию соответствующее окончание. И получилась Мексика. Над названием американского штата New Mexico работал другой переводчик. Который тоже знал английский, но не понял, что в названии содержится отсылка к стране идет Мексике.
И тут мы сталкиваемся с третьим вариантом — городом Ciudad de México, также известном как Mexico. Его название переводил третий человек. Который был знаком с испанским, но не слышал о географии и не знал, что одноименную страну по-русски называют Мексикой. Отсюда Мехико. Логической системы тут нет. Нужно просто запомнить.