И все-таки мне кажется, что более корректным является название Хамельн.
Передача немецкой «H» (в тех случаях, когда она читается) русской «Г» хотя и является исторически обусловленной, тем не менее считается устаревшей. Современная норма — использование буквы «Х».
Инструкция [1] Главного управления геодезии и картографии при Совете Министров СССР (Москва — 1974 г.) включает список географических названий (раздел VI, §49, стр. 17), которые даются по-русски в традиционно утвердившемся написании. В него входят только следующие названия на букву «H»: Гамбург, Ганновер, Гельголанд (остров), Гельголандская бухта и Гессен (земля).
Google Maps и Яндекс Карты используют название Хамельн.
В речи русскоязычных жителей города встречается исключительно вариант "Хамельн", как соответствующий современному немецкому произношению.
В русскоязычной прессе, распространяемой в городе, так же используется вариант "Хамельн".
Аналогично называются по-русски соседние населенные пункты: Хастенбек, Хасперде, Харкензен и т.п.
Что же касается Крысолова, то у него нет другого выхода, как остаться "гамельнским". Под таким именем он вошел в русскоязычную историю. Но эту нелегкую судьбу с ним разделяют и "цейлонский чай", и "персидские шахи".