ну как вариант - массив... но работать с таким кол-вом данными не ахти я думаю.
как вариант можно запустить 2 цикла по размеру карты деленной на размер спрайта объекта, и проверять каждую позицию на наличие данного объекта, дальше просто брать его х,у, и ObjType. Вся проблема только в том, как я вижу, там размеры спрайтов объектов разные, из-за этого этот способ может не подойти, хотя если всем сделать одинаковый размер или одинаковый хит бокс для проверки... то может что-то и получится.
Можно еще глянуть в сторону списков(ds_list), вместо массивов... Хотя суть сортировки останется почти та же...