This patch gives Bullet Bills interaction with objects, and causes them to turn/flip if they make contact with solid objects. You can either apply the patch globally, or use a FreeRAM-based toggle which allows you to give Bullet Bills interaction on a per-level basis with UberASM (or with your own triggers if you want to use it creatively!).
The patch also tweaks the sprite-object interaction routine for Bullet Bills, to fix interaction issues when using the patch with moving layer 2 or slopes.
See the .asm file for customization options and usage notes.