You'll need a custom system for either one of your use cases.
a. Custom movement blocking event for movement solids
or
b. Custom bouncing/reflection event for projectiles.
You can use an invisible sprite dedicated to either bouncing or blocking and place them where appropriate.