x01 = Right-Wall collision (which is the left side of the entity)
x02 = Ceiling collision (which is the top of the entity)
x04 = Left-Wall collision (which is the right side of the entity)
x08 = Floor collision (which is the bottom side of the entity)
Also when handling collisions versus NPCs, their left or right direction is taken into account as the hitrect specifications always understand that the numbers are when the sprite is facing to the right (forward). If they have flag x1000 set, that inverts this consideration.
Also, also bullets do not collide properly with flat sides of sloped tiles. This is because of a limitation in the original engine, although I believe I've found a work around - I just haven't gotten to coding it yet.
Also, also also, when modifying the fireball's bounce behavior, remember to only alter one axis at a time, not both, and based on the existing sign of that axis (positive or negative). (ie: If colliding with the floor (x08), and if Y.vel is positive, then invert it. otherwise do nothing). If not done this way, the fireball will hug the ground, as a bullet collides with a tile many times upon first touching it - especially the fireball. (If the collision in question is moving, don't forget to add the opposing entity's opposite axis to the bullet's, and it doesn't hurt to offset the bullet by +- x200)