2 main optimizations, prevent duplicate materials in the block lists, and don't reload configs if they're up to date

Also some refractoring to keep things neat
Better error messages
Lets save like 50bytes of ram, if this even does anything lol