Thank you! This works great!
If you are having problems with scrolling and updating tiles at the same time, the accepted fix for it is to check if the screen is scrolling that frame, and not doing the tile collision at all if it is. This way, it will execute the tile collision as soon as it can without messing up anything else.
To do this, here is the code you put at the top of your tile script:
Code:LDA updateScreenData AND #%0000100 BEQ + RTS +