if (mat > 100.5 && mat < 10000.0) {
    if (mat < 152.5) {
        if (mat < 132.5) {
            if (mat < 124.5) {
                if (material == 120.0) { // Redstone Stuff
                    #ifndef WORLD_CURVATURE
                        float comPos = fract(worldPos.y + cameraPosition.y);
                    #else
                        float comPos = fract(oldPosition.y + cameraPosition.y);
                    #endif
                    if (comPos > 0.18) emissive = float((albedo.r > 0.65 && albedo.r > albedo.b * 1.0) || albedo.b > 0.99);
                    else emissive = float(albedo.r > albedo.b * 3.0 && albedo.r > 0.5) * 0.125;
                    emissive *= max(0.65 - 0.3 * dot(albedo.rgb, vec3(1.0, 1.0, 0.0)), 0.0);
                    if (specB > 900.0) { // Observer
                        emissive *= float(albedo.r > albedo.g * 1.5);
                    }
                }
                else if (material == 124.0) { // Warped Stem+
                    #ifdef EMISSIVE_NETHER_STEMS
                        float core = float(albedo.r < 0.1);
                        float edge = float(albedo.b > 0.35 && albedo.b < 0.401 && core == 0.0);
                        emissive = core * 0.195 + 0.035 * edge;
                    #endif
                }
            } else {
                if (material == 128.0) { // Crimson Stem+
                    #ifdef EMISSIVE_NETHER_STEMS
                        emissive = float(albedo.b < 0.16);
                        emissive = min(pow2(lAlbedoP * lAlbedoP) * emissive * 3.0, 0.3);
                    #endif
                }
                else if (material == 130.0) { // Sculk++
                    emissive *= max((albedo.b - albedo.r) - 0.1, 0.0) * 0.5
                              + 100.0 * max(albedo.g - albedo.b, 0.0) * float(albedo.r < albedo.b - 0.1)
                              ;
                }
                else if (material == 132.0) { // Command Blocks
                    #ifndef WORLD_CURVATURE
                        vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
                    #else
                        vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
                    #endif
                    comPos = abs(comPos - vec3(0.5));
                    float comPosM = min(max(comPos.x, comPos.y), min(max(comPos.x, comPos.z), max(comPos.y, comPos.z)));
                    emissive = 0.0;
                    if (comPosM < 0.1882) { // Command Block Center
                        vec3 dif = vec3(albedo.r - albedo.b, albedo.r - albedo.g, albedo.b - albedo.g);
                        dif = abs(dif);
                        emissive = float(max(dif.r, max(dif.g, dif.b)) > 0.1) * 25.0;
                        emissive *= float(albedo.r > 0.44 || albedo.g > 0.29);

                        if (CheckForColor(albedo.rgb, vec3(207, 166, 139)) // Fix for Iris' precision
                        ||  CheckForColor(albedo.rgb, vec3(201, 143, 107))
                        ||  CheckForColor(albedo.rgb, vec3(161, 195, 180))
                        ||  CheckForColor(albedo.rgb, vec3(131, 181, 145))
                        ||  CheckForColor(albedo.rgb, vec3(155, 139, 207))
                        ||  CheckForColor(albedo.rgb, vec3(135, 121, 181))) emissive = 0.0;
                        
                        #ifdef ALTERNATIVE_COMMAND_BLOCK
                            if (emissive > 0.01) {
                                albedo.rgb *= vec3(0.88, 1.32, 1.9);
                                albedo.g = sqrt1(albedo.g) * 0.6;
                                albedo.rgb *= albedo.rgb * 2.0;
                            }
                        #endif
                    }
                    vec3 dif = abs(vec3(albedo.r - albedo.g, albedo.g - albedo.b, albedo.r - albedo.b));
                    float maxDif = max(dif.r, max(dif.g, dif.b));
                    smoothness = 0.38;
                    if (maxDif < 0.05) smoothness = 0.6;
                    metalness = 1.0;
                }
            }
        } else {
            if (mat < 144.5) {
                if (material == 136.0) { // Snowy Grass Block
                    if (lAlbedoP > 1.0) smoothness = lAlbedoP * lAlbedoP * 0.165;
                    else metalness = 0.003;
                }
                else if (material == 140.0) { // Dragon Egg, Spawner
                    emissive = float(albedo.r + albedo.b > albedo.g * 30.0 && lAlbedoP < 0.6);
                    emissive *= 8.0 + float(lAlbedoP < 0.4) * 100.0;
                    if (albedo.b + albedo.g > albedo.r * 2.0 && lAlbedoP > 0.2) { // Spawner Metal
                        smoothness = 0.385;
                        metalness = 0.8;
                    }
                    if (max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.r)) < 0.01) { // Dragon Egg Subtle Emission
                        emissive = 2.5 * float(lAlbedoP < 0.2);
                    }
                }
                else if (material == 144.0) // Furnaces Lit
                    emissive = 0.75 * float(albedo.r * albedo.r > albedo.b * 4.0 || (albedo.r > 0.9 && (albedo.r > albedo.b || albedo.r > 0.99)));
            } else {
                if (material == 148.0) // Torch, Soul Torch
                    emissive = float(albedo.r > 0.9 || albedo.b > 0.65) * (1.4 - albedo.b * 1.05);
                    /* {
                        #ifndef WORLD_CURVATURE
                            vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
                        #else
                            vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
                        #endif
                        comPos = abs(comPos - vec3(0.5));
                        float comPosM = max(max(comPos.x, comPos.y), comPos.z);
                        emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
                        if (emissive > 0.001) {
                            emissive *= emissive;
                            emissive *= emissive;
                            emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
                            emissive = min(emissive, 0.15);
                        } else emissive = 0.0;
                        lightmap.x = min(emissive * 10.0 + 0.6, 1.05);
                        albedo.rgb = pow(albedo.rgb, vec3(1.4 - lightmap.x));
                    } */
                else if (material == 152.0) { // Obsidian++
                    smoothness = max(smoothness, 0.375);
                    if (specB > 0.5) { // Crying Obsidian, Respawn Anchor
                        emissive = (albedo.b - albedo.r) * albedo.r * 6.0;
                        emissive *= emissive * emissive;
                        emissive = clamp(emissive, 0.05, 1.0);
                        if (lAlbedoP > 1.6 || albedo.r > albedo.b * 1.7) emissive = 1.0;
                    } else {
                        if (lAlbedoP > 0.75) { // Enchanting Table Diamond
                            f0 = smoothness;
                            smoothness = 0.9 - f0 * 0.1;
                            metalness = 0.0;
                        }
                        if (albedo.r > albedo.g + albedo.b) { // Enchanting Table Cloth
                            smoothness = max(smoothness - 0.45, 0.0);
                            metalness = 0.0;
                        }
                    }
                }
            }
        }
    } else {
        if (mat < 170.5) {
            if (mat < 162.5) {
                if (material == 156.0) { // Campfires, Powered Lever
                    if (albedo.g + albedo.b > albedo.r * 2.3 && albedo.g > 0.38 && albedo.g > albedo.b * 0.9) emissive = 0.09;
                    if (albedo.r > albedo.b * 3.0 || albedo.r > 0.8) emissive = 0.65;
                    emissive *= max(1.0 - albedo.b + albedo.r, 0.0);
                    emissive *= lAlbedoP;
                }
                else if (material == 160.0) { // Cauldron, Hopper, Anvils
                    if (color.r < 0.99) { // Cauldron Water
                        cauldron = 1.0, smoothness = 1.0, metalness = 0.0;
                        skymapMod = lmCoord.y * 0.475 + 0.515;
                        #ifdef REFLECTION_RAIN
                            noRain = 1.0;
                        #endif
                        #if WATER_TYPE == 0
                            albedo.rgb = waterColor.rgb;
                        #elif WATER_TYPE == 1
                            albedo.rgb = pow(albedo.rgb, vec3(1.3));
                        #else
                            albedo.rgb = vec3(0.4, 0.5, 0.4) * (pow(albedo.rgb, vec3(2.8)) + 4 * waterColor.rgb * pow(albedo.r, 1.8)
                                                        + 16 * waterColor.rgb * pow(albedo.g, 1.8) + 4 * waterColor.rgb * pow(albedo.b, 1.8));
                            albedo.rgb = pow(albedo.rgb * 1.5, vec3(0.5, 0.6, 0.5)) * 0.6;
                            albedo.rgb *= 1 + length(albedo.rgb) * pow(WATER_OPACITY, 32.0) * 2.0;
                        #endif
                        #ifdef NORMAL_MAPPING
                            vec2 cauldronCoord1 = texCoord + fract(frametime * 0.003);
                            float cauldronNoise1 = texture2D(noisetex, cauldronCoord1).r;
                            vec2 cauldronCoord2 = texCoord - fract(frametime * 0.003);
                            float cauldronNoise2 = texture2D(noisetex, cauldronCoord2).r;
                            float waveFactor = 0.027 + 0.065 * lightmap.y;
                            normalMap.xy += (0.5 * waveFactor) * (cauldronNoise1 * cauldronNoise2 - 0.3);
                            albedo.rgb *= (1.0 - waveFactor * 0.5) + waveFactor * cauldronNoise1 * cauldronNoise2;
                        #endif
                    }
                    #if MC_VERSION >= 11700
                    else if (albedo.r * 1.5 > albedo.g + albedo.b) { // Cauldron Lava
                        metalness = 0.0;
                        smoothness = 0.0;

                        #ifndef WORLD_CURVATURE
                            float comPos = fract(worldPos.y + cameraPosition.y);
                        #else
                            float comPos = fract(oldPosition.y + cameraPosition.y);
                        #endif
                        comPos = fract(comPos);
                        if (comPos > 0.2 && comPos < 0.99) {
                            emissive = 1.0;
                            albedo.rgb *= LAVA_INTENSITY * 0.9;
                        }
                    }
                    else if (dot(albedo.rgb, albedo.rgb) > 2.7) { // Cauldron Powder Snow
                        metalness = 0.0;
                        smoothness = pow(lAlbedoP, 1.8037) * 0.185;
                        smoothness = min(smoothness, 1.0);
                    }
                    #endif
                }
                else if (material == 162.0) { // Glowstone, Magma Block
					#include "/lib/other/mipLevel.glsl"

                    emissive = pow(lAlbedoP, specB) * fract(specB) * 20.0;

                    emissive += miplevel * 2.5;
                }
            } else {
                if (material == 164.0) { // Chorus Plant, Chorus Flower Age 5
                    if (albedo.g > 0.55 && albedo.r < albedo.g * 1.1) {
                        emissive = 1.0;
                    }
                }
                else if (material == 168.0) { // Overworld Ore Handling Except Redstone
                    float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
                    float brightFactor = max(lAlbedoP - 1.5, 0.0);
                    float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
                    #ifdef EMISSIVE_ORES
                        emissive *= sqrt4(ore) * 0.15 * ORE_EMISSION;
                    #endif
                    metalness = 0.0;
                    
                    #if !defined EMISSIVE_ORES || !defined EMISSIVE_IRON_ORE
                        if (abs(specG - 0.07) < 0.0001) {
                            float oreM = min(pow2(ore * ore) * 300.0, 1.0);
                            smoothness = mix(smoothness, 1.0, oreM);
                            metalness = mix(metalness, 0.8, sqrt3(oreM));
                        }
                    #endif
                    #if !defined EMISSIVE_ORES || !defined EMISSIVE_COPPER_ORE
                        if (abs(specG - 0.1) < 0.0001) {
                            float oreM = sqrt3(min(ore * 0.25, 1.0));
                            smoothness = mix(smoothness, 0.5, oreM);
                            if (oreM > 0.01) metalness = 0.8;
                        }
                    #endif
                    #if !defined EMISSIVE_ORES || !defined EMISSIVE_GOLD_ORE
                        if (abs(specG - 0.002) < 0.0001) {
                            float oreM = min(pow2(ore * ore) * 40.0, 1.0);
                            smoothness = mix(smoothness, 0.5, oreM);
                            if (oreM > 0.01) metalness = 0.8;
                        }
                    #endif
                    #if !defined EMISSIVE_ORES || !defined EMISSIVE_EMERALD_ORE
                        if (abs(specG - 0.0015) < 0.0001) {
                            if (ore > 0.01) {
                                float oreM = 1.0 - min(ore * 0.75, 1.0);
                                smoothness = mix(smoothness, 1.0, oreM);
                                extraSpecularM = 1.0;
                            }
                        }
                    #endif
                    #if !defined EMISSIVE_ORES || !defined EMISSIVE_DIAMOND_ORE
                        if (abs(specG - 0.001) < 0.0001) {
                            if (ore > 0.01) {
                                float oreM = 1.0 - min(ore, 1.0);
                                smoothness = mix(smoothness, 1.0, oreM);
                                extraSpecularM = 1.0;
                            }
                        }
                    #endif
                }
                else if (material == 170.0) { // Block of Amethyst++
                    smoothness = min(pow((max(1.73 - lAlbedoP, 0.0) + 1.0), 0.81) * 0.5, 1.0);

                    #ifdef EMISSIVE_AMETHYST_BUDS
                        #ifndef WORLD_CURVATURE
                            vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
                        #else
                            vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
                        #endif
                        comPos = abs(comPos - vec3(0.5));
                        float comPosM = max(max(comPos.x, comPos.y), comPos.z);
                        emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
                        if (emissive > 0.001) {
                            float orangeFactor = sqrt1(emissive * sqrt2(1.0 - lmCoord.x));
                            emissive *= emissive;
                            emissive *= emissive;
                            emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
                            emissive = min(emissive, 0.15) * 1.1;
                            albedo.rgb = pow(albedo.rgb, mix(vec3(1.0), vec3(1.0, 1.0, 2.0), orangeFactor));
                            float whiteFactor = pow(clamp(albedo.g * (1.0 + emissive), 0.0, 1.0), 10.0);
                            albedo.rgb = mix(albedo.rgb, vec3(1.0), whiteFactor);
                        } else emissive = 0.0;
                    #endif
                }
            }
        } else {
            if (mat < 176.5) {
                if (material == 172.0) { // Wet Farmland
                    if (lAlbedoP > 0.3) smoothness = lAlbedoP * 0.7;
                    else smoothness = lAlbedoP * 2.7;
                    smoothness = min(smoothness, 1.0);
                }
                else if (material == 174.0) { // Emissive Redstone Ores
                    float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
                    float brightFactor = max(lAlbedoP - 1.5, 0.0);
                    float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
                    emissive *= sqrt4(ore) * 0.11 * ORE_EMISSION;
                    metalness = 0.0;
                    
                    // Fix white pixels
                    if (emissive > 0.01) {
                        float whitePixelFactor = max(lAlbedoP * lAlbedoP * 2.2, 1.0);
                        albedo.rgb = pow(albedo.rgb, vec3(whitePixelFactor));
                    }
                }
                else if (material == 176.0) { // Beacon
                    #ifndef WORLD_CURVATURE
                        vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
                    #else
                        vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
                    #endif
                    comPos = abs(comPos - vec3(0.5));
                    float comPosM = max(max(comPos.x, comPos.y), comPos.z);
                    if (comPosM < 0.4 && albedo.b > 0.5) { // Beacon Core
                        albedo.rgb = vec3(0.35, 1.0, 0.975);
                        if (lAlbedoP > 1.5) albedo.rgb = vec3(1.0);
                        else if (lAlbedoP > 1.3) albedo.rgb = vec3(0.35, 1.0, 0.975);
                        else if (lAlbedoP > 1.15) albedo.rgb *= 0.86;
                        else albedo.rgb *= 0.78;
                        emissive = 1.5;
                    }
                }
            } else {
                if (material == 180.0) { // End Rod
                    if (lAlbedoP > 1.3) {
                        smoothness = 0.0;
                        emissive = 0.4;
                    }
                }
                else if (material == 182.0) { // Froglight-
                    emissive = 0.02 + 0.7 * pow2(pow2(pow2(1.0 - length(vTexCoord.xy - 0.5))));
                    
                    albedo.rgb = pow(albedo.rgb, vec3(1.0 + pow(0.35 * dot(albedo.rgb, vec3(1.0)), 32.0)));
                }
                else if (material == 184.0) { // Rails
                    if (albedo.r > albedo.g * 2.0 + albedo.b) {
                        if (lAlbedoP > 0.45) { // Rail Redstone Lit
                            emissive = lAlbedoP;
                        } else { // Rail Redstone Unlit
                            smoothness = 0.4;
                            metalness = 1.0;
                        }
                    } else {
                        if (albedo.r > albedo.g + albedo.b || abs(albedo.r - albedo.b) < 0.1) { // Rail Gold, Rail Iron
                            smoothness = 0.4;
                            metalness = 1.0;
                        }
                    }
                }
            }
        }
    }
}

#ifdef EMISSIVE_NETHER_ORES
    if (specB < -9.0) {
        emissive = float(albedo.r + albedo.g > albedo.b * 2.0 && albedo.g > albedo.b * (1.2 - albedo.g * 0.5));
        if (abs(albedo.g - albedo.b) < 0.1) emissive *= float(albedo.b > 0.35 || albedo.b < 0.05); // Eliminate Some Pixels On Quartz Ore
        emissive *= albedo.r * 0.05 * ORE_EMISSION;
        if (emissive > 0.01) // Desaturate Some Red-Looking Pixels
        albedo.rgb = mix(albedo.rgb, vec3(dot(albedo.rgb, vec3(0.4, 0.5, 0.07))), clamp((albedo.r - albedo.g) * 2.0, 0.0, 0.3));
    }
#endif