Anyway Jenny, here is something that might help and is something I do with dd (she is 26 months but extremely verbal).
Your son has expressed a need. He thinks making messes are fun and enjoys mmaking messes.
You have a need. You don't want your house trashed.
Both are valid needs and can both be addressed imo -- I am assuming your son is verbal so why don't you tell him "I hear that you like making messes (state his need), but I like a to keep the house clean (your need). Let's work together to help eachother! Can you tell me when you want to make a mess and I will help you make one together!" Or some variation.
Set him up in the kitchen or bathroom with tons of stuff to go nuts with -- dd loves to paint and when I am feeling lazy

she paints in the bathtub sans water -- all over the walls, standing in the bath -- then I can hose everything down really easily. We have bins of different textures and whatnot to make messes with --- shaving cream, sand, cormeal mixed with water that makes a goo, paint, things like that. I throw down an old, cheap shower curtain in the kitchen and she goes to town --- she (almost) always tells me now "I want to make a mess!!!" because she knows I don't see it as a *bad* thing or as something she can't do -- she knows she is totally *allowed* to make a mess and by telling me beforehand, I can get out the good stuff

Maybe that would work... maybe setting up situations where he is free to go to town (in the bathtub without water is a good containment for messes

) or outside or wherever, in a situation where he feels free to tell you messes are awesome (cuz they are, and to a four year old they are heaven on earth), and where he knows you will meet that need in a way that is agreeable to you -- it may avoid a lot of this.
Worth a try right?