Никакой загадки тут нет. Современные правила транслитерации, предполагающие максимально близкую к оригиналу передачу звучания названий и имен собственных, вошли в международный оборот сравнительно недавно - не более 100 лет назад. А до того был полный разнобой, причем везде, а не только в России. И тут было как минимум несколько путей для искажений: 1) чужеземец неверно расслышал самоназвание; 2) местное название труднопроизносимо или неблагозвучно для языка заимствования; 3) заимствование шло через иноязычные письменные источники, правила корректного прочтения которых были неизвестны.
Скажем, японцы называют свою страну Nippon. Хотя первыми в Японию проникли португальцы, их вскоре вытеснили оттуда голландцы, монополизировавшие все торговые операции с этой страной. Для них самоназвание звучало как "Япан" (Japan). Англичане прочитали его на голландских картах на свой манер - "Джэпен", а русские - на свой: "Япония". И еще не факт, кто из европейцев его сильнее исковеркал

. Кстати, Марко Поло краем уха слышал от китайцев о государстве Сипан на востоке (Сипан Го). Не случайно, что 300 лет спустя Колумб принял Кубу за таинственный остров Sipango

С самим Китаем тоже вышло интересно. Вообще "ноги растут" от династии Цинь. Итальянец Марко Поло расслышал его на свой манер - "Чин" (Chin), французы прочитали по своим правилам - "Шин" (Chine), добавив концевую "е", чтобы не получилось просто "Ши", а англичане снова переврали прочитав французское Chine на свой манер как "Чайна" (China). Немцы заимствовали от итальянцев, но свука "ч" у них нет, поэтому они не мудрствуя написали "Sine" (кстати, AppelSine - китайское яблоко).
Что касается приведенных вами примеров, то Croatia - латинизированная форма, сами хорваты свою страну называют Hrvatska. Так что русское Хорватия ближе к оригиналу, чем европейское Croatia. С Венгрией такая история: сами венгры называют свою страну Madjar, а себя соответственно мадьярами (кстати, соседние славянские народы зовут их именно так). В старину же, когда они были еще кочевниками, звались "уграми". Именно так их называли и в русских летописях, и в немецких - Ungern, и по-латыни - Hungar. В русском языке Югра (Угра) закрепилось за прежней родиной венгров, а в английский попало через латынь - Hungary. Название же Венгрия попало к нам от немцев - VNGERN, по-русски получилось "Венгер" или "Венгрия"

С Ливаном такая история. При переходе от древнегреческому к новогреческому языку во времена Византии буква "бета" стала произноситься не как "б", а как "в". Западники транслитерировали греческие тексты по древним правилам, а на Русь попал уже "модерновый вариант". Поэтому у нас и получились "Ливан", "Вифлеем", "Василий", а у англичан, к примеру - "Лебанон", "Бедлам", "Бейзил"

С Грузией такая история. Для Европы в Средние века это был практически край света, единственно, что о ней было известно - страна христианская и сильнее прочих почитается там Св. Георгий. Не долго думая, и назвали страну Георгией.
Я уж про нашу Родину молчу: Рутения, Раша, Руссланд, Рюс, Русия - все это европейские версии нашей Руси

Так что чем сильнее отличается название от оригинала, тем в более древние времена произошло заимствование. И в этом "коверкании" есть свой неповторимый шарм.
