The name a people choose for themselves would, ideally, be the one by which they are known. Such is often not the case. The American Indian tribe known as the Sioux, for instance, call themselves, mainly, Lakota (though there are other names for “Sioux” tribelets). Sioux is a corruption of a name given the tribe by people to their east – who were encountered first by the Europeans traveling west; Sioux in its first form basically meant “enemy.” (“What do you call the next tribe over?” “The bad guys.”)
In Miguel Leon-Portilla’s collection of early native testimony on the arrival of the Spaniards in Mexico there’s an explanatory footnote about the origin of the word Tlaxcala. Tlaxcala was a city state near Mexico City (or Tenochtitlan); they were no friends of the Aztecs and allied with Cortez. The footnote goes: “The Aztecs explained the origin of the word Tlaxcala [as from] Texcala, ‘where there are many rocks’ [whereas] to the Tlaxcaltecas it means ‘where there are corn tortillas.’”
Hm. I wonder who had that right?
source: The Broken Spears: the Aztec account of the conquest of Mexico edited by Miguel Leon-Portilla