Эти топонимы, а также штат Уахака, и многие другие, остались со времён индейцев, в языках которых был звук, похожий на русский "ш". Старинные индейские имена были похожи на " Тешас", "Мешико", " Уашака". Потом приплыли испаноязычные конкистадоры, и решили записывать звук ш, которого в испанском языке нет, латинской буквой икс, а произносить похоже на русский звук "х". То есть, "Техас" и "Мехико" - это именно, как их называют по-испански. А позже англоязычные колонисты стали произносить икс как "кс".
Добавлено потом: буква икс в испанском языке используется редко, и обычно произносится "кс" (texto, examen, éxito) или "с" в начале слова (Xavier). Как "х" она произносится только в этом контексте - транслитерация "ш" в индейских топонимах.
Звук же "х" обозначается буквой j (José). Несколько раз в 18 и 20 веках Mexico пытались переименовать в Mejico, но мексиканцы протестовали и не дали. А Техас многие испанцы пишут Tejas, а не Texas.
См (по-испански) lema.rae.es
Русское 'Техас' заимствовано из испанского?