Я бы по-другому сделал
есть команда JP (IX)
и есть команда LD XH,A
и можно код по ровному адресу выровнять. Тогда не надо будет модифицировать код по ходу. Да и быстрее будет.

А вообще с общим подходом согласен - 32 LDI самое то.