Yeah sounds like he has too much and they are not well organised.
I went through and organised by type, but related things could go together so I put all the toy food, shopping baskets and till, money, kitchen utensils all in one. While doing this discard any which are broken, don't fit with the rest, don't work properly, etc.
Put a picture on the front. That way even a pre reader knows what goes where. Can be clip art, a photo of something from the box, a bad drawing.
Do this for all boxes so that each has a set play theme. While doing this, weed out the outgrown toys. At 4 there will be plenty.
For things like duplo where you need to be able to see what you have, I'd recommend moving it from kallax which is dark and hard to see into, into a clear plastic tub. You can get them to fit inside the kallax.
Explain to son that you're having a sort out and now it will be easy to see his toys. Explain that because of this, you're not going to tip them out any more. Be prepared to spend the following 2-3 weeks reinforcing this new habit. When he gets a box out, if he doesn't tip it, praise him for keeping the toys in the box. If he does go to tip it, try to catch him in time to physically stop him and remind him "remember, we aren't going to tip the boxes out any more." Then praise if he stops. If you're too late, say "oh dear, we decided not to tip the boxes out, remember?"
If he claims he needs to tip to find things, consider the clear box, or perhaps you have too many things in that box and the mix isn't quite right. Get him on board to problem solve. If he just likes the feeling of tipping out toys (who doesn't?!) Maybe find him some toys that emulate that like ker-plunk, marble run, tub of rice to play with in a tray with little pots etc.
Stuff like battery operated toys pare down to a few favourites and/or buy a load of cheap batteries or rechargable batteries. If you're not going to replace the batteries, then donate or sell the toy otherwise it's just clutter. If you are willing to replace them then do it ASAP.
Establish tidy up time at the end of the day, but also try to keep an eye on what's happening and clean up unused boxes as you go through the day. It is easier to do this once everything has a place.
Oh and a lost parts box is also helpful. When you find a stray marble, Lego piece, board game part, put it in here instead of just sticking in any old random box. When you need a missing part, check the lost things box.