You are creating a new material instance every time the cube overlaps and also every time a save data is loaded.
That doesn’t make much sense.
You can see cubes that save mesh + material states on sample level 2 of the demo project.
They simply keep the same material instance instead of replacing them every time like you’re doing.