Computer programs tend to start out small and as time goes by, features and new functionality is added. This makes old code more complex as it was never intended for these new tasks. It is normal to say at one point: enough is enough, let's refactor the program. It doesn't mean: throw away the old code and start anew. It just means to take a step back and consider what you have and what is actually needed. Create a new design and rewrite the parts that don't fit. Maybe there is some legacy code that works, but is in another language or uses arcane constructions. Maybe there are some very complex routines that are only used to do execute some relatively simple tasks. These could be cut down and simplified. It might take a while, but the overall program will improve a lot and it will allow new programmers to work on the system with a lot less effort.
Most Western law systems were created somewhere in the 19th century and it shows. The language is arcane (legalese). A lot of laws used for modern phenomena actually talk about things of 80 years ago and can only be matched on the current situation by interpretation. Great fun for the lawyers, but it makes the whole thing rather incomprehensible for the lay man.
The law needs to be refactored. Get the best lawyer, let them make a list of what the law essentially says and have them work out a structure that is most suited for this. Then we can step by step start to transform the existing body of law into that structure. It will take some time and effort, but it will make things clearer and more efficient on the long run. And while we're at it, let's translate the law from legalese into real lanugage. Anything worth saying can be said clearly.