RecipeManager#getRecipeFor uses OreRefineryRecipe#matches to enure the items in the container are valid for the given SimpleContainer are you sure the implemention is correct since you have a NonNullList as input but you only use the first item of the list?
I don't currently have a mod in 1.16.5 but I would say due to the error the ItemGroup.MATERIALS no longer exists, use your IDE to check this.
In addition you can take a look at the Items class for vanilla examples, you should then be able to fix the error.
The log you post does not conatins any error which causes the game to crash.
Make sure the log you post is the full debug.log, if it's not try to upload the log on GitGist: https://gist.github.com/
Then you have to search for a player and a beacon in a certain area, you can use an AABB and a BlockPos.Mutable for Blocks.
The level has methods to get entities under certain conditions, e.g. getEntities or something like that.
Have you only installed Better Ore Generation?
If so, this mod is causing the problem in this case ensure you have the latest version of the mod installed.
If this is also the case report this issue to the Mod author.
As Finn already told you the Mod is made by Mcreator its a mode maker for Minecraft (which is not recommend to use).
It looks like there is a 1000/3 chance that the structure is generated in a chunk.
I would recommend removing the mod and replacing it with a similar mod from Curseforge.
Create a new class that extends the LayerRenderer,
implement the render method and render whatever you want there (use the vanilla layers as an example).
Then you need to subscribe to the EntityRenderersEvent.AddLayers and add the your custom LayerRenderer to the EntityRenderer.
You can add a LayerRenderer to the Entity in EntityRenderersEvent.AddLayers.
There are many vanilla LayerRenderers you can use as an example, use your IDE to find them.