How to implement complex collision rules with tags and without custom collision object types?

Do you mean something like this?

It is a solution from 2014 but I think the tag system still works kinda the same.