I think I see the problem already. The map is filled with case sensitive values, but the search is done using a tolower version of the algorithm in layout. Since that will never match, the algorithm will always be linear. I'll see if I can fix that soon.