Why #1 is removed:
The description is vague. What data? How do the bytes work?
Why #2 is removed:
The pointer is 1 byte off; the ROM address is of the instruction which uses the pointer; not the pointer itself. The pointer is 2 bytes by the way. Another reason is that I don't really get what you mean by "block spread". See questions above.