Well i believe what people do is they do not have collision response enabled.
I think it would go like this
foreach(Bullet a in Bullets)
foreach(Object b in walls)
this would have it so that every single bullet that hits a wall will be disposed.
Are you trying to have them do something to the walls like knock stuff over?
If so then im not sure how to combat tunneling.