diff --git a/Fabric/src/main/java/chylex/customwindowtitle/fabric/CustomWindowTitle.java b/Fabric/src/main/java/chylex/customwindowtitle/fabric/CustomWindowTitle.java
index cea415a..f9b8eef 100644
--- a/Fabric/src/main/java/chylex/customwindowtitle/fabric/CustomWindowTitle.java
+++ b/Fabric/src/main/java/chylex/customwindowtitle/fabric/CustomWindowTitle.java
@@ -1,8 +1,8 @@
 package chylex.customwindowtitle.fabric;
+
 import chylex.customwindowtitle.TitleConfig;
 import chylex.customwindowtitle.TitleParser;
 import chylex.customwindowtitle.data.CommonTokenData;
-import com.mojang.blaze3d.platform.Window;
 import net.fabricmc.api.ClientModInitializer;
 import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.client.Minecraft;
@@ -21,11 +21,6 @@ public class CustomWindowTitle implements ClientModInitializer {
 	}
 	
 	private void updateTitle() {
-		final Window window = Minecraft.getInstance().getWindow();
-		window.setTitle(TitleParser.parse(config.getTitle()));
-		
-		if (config.hasIcon()) {
-			window.setIcon(config.readIcon16(), config.readIcon32());
-		}
+		Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
 	}
 }
diff --git a/Fabric/src/main/java/chylex/customwindowtitle/fabric/TokenProvider.java b/Fabric/src/main/java/chylex/customwindowtitle/fabric/TokenProvider.java
index e19da6c..abf4073 100644
--- a/Fabric/src/main/java/chylex/customwindowtitle/fabric/TokenProvider.java
+++ b/Fabric/src/main/java/chylex/customwindowtitle/fabric/TokenProvider.java
@@ -1,4 +1,5 @@
 package chylex.customwindowtitle.fabric;
+
 import chylex.customwindowtitle.TokenException;
 import chylex.customwindowtitle.data.CommonTokenProvider;
 import net.fabricmc.loader.api.FabricLoader;
diff --git a/Forge/src/main/java/chylex/customwindowtitle/forge/CustomWindowTitle.java b/Forge/src/main/java/chylex/customwindowtitle/forge/CustomWindowTitle.java
index e993822..fdd7bd2 100644
--- a/Forge/src/main/java/chylex/customwindowtitle/forge/CustomWindowTitle.java
+++ b/Forge/src/main/java/chylex/customwindowtitle/forge/CustomWindowTitle.java
@@ -1,8 +1,8 @@
 package chylex.customwindowtitle.forge;
+
 import chylex.customwindowtitle.TitleConfig;
 import chylex.customwindowtitle.TitleParser;
 import chylex.customwindowtitle.data.CommonTokenData;
-import com.mojang.blaze3d.platform.Window;
 import net.minecraft.client.Minecraft;
 import net.minecraftforge.eventbus.api.SubscribeEvent;
 import net.minecraftforge.fml.IExtensionPoint.DisplayTest;
@@ -29,11 +29,6 @@ public class CustomWindowTitle {
 	}
 	
 	private void updateTitle() {
-		final Window window = Minecraft.getInstance().getWindow();
-		window.setTitle(TitleParser.parse(config.getTitle()));
-		
-		if (config.hasIcon()) {
-			window.setIcon(config.readIcon16(), config.readIcon32());
-		}
+		Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
 	}
 }
diff --git a/Forge/src/main/java/chylex/customwindowtitle/forge/TokenProvider.java b/Forge/src/main/java/chylex/customwindowtitle/forge/TokenProvider.java
index 8fda298..20e958e 100644
--- a/Forge/src/main/java/chylex/customwindowtitle/forge/TokenProvider.java
+++ b/Forge/src/main/java/chylex/customwindowtitle/forge/TokenProvider.java
@@ -1,4 +1,5 @@
 package chylex.customwindowtitle.forge;
+
 import chylex.customwindowtitle.TokenException;
 import chylex.customwindowtitle.data.CommonTokenProvider;
 import net.minecraftforge.fml.ModList;
diff --git a/src/main/java/chylex/customwindowtitle/TitleConfig.java b/src/main/java/chylex/customwindowtitle/TitleConfig.java
index 3d4c6d9..62ec20e 100644
--- a/src/main/java/chylex/customwindowtitle/TitleConfig.java
+++ b/src/main/java/chylex/customwindowtitle/TitleConfig.java
@@ -1,28 +1,25 @@
 package chylex.customwindowtitle;
-import net.minecraft.server.packs.resources.IoSupplier;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 public final class TitleConfig {
-	private static final Map<String, String> DEFAULTS;
+	private static final ImmutableMap<String, String> DEFAULTS = ImmutableMap.<String, String>builder()
+		.put("title", "Minecraft {mcversion}")
+		.build();
 	
-	static {
-		final Map<String, String> defaults = new LinkedHashMap<>();
-		
-		defaults.put("title", "Minecraft {mcversion}");
-		defaults.put("icon16", "");
-		defaults.put("icon32", "");
-		
-		DEFAULTS = Collections.unmodifiableMap(defaults);
-	}
+	private static final ImmutableSet<String> IGNORED_KEYS = ImmutableSet.of(
+		"icon16",
+		"icon32"
+	);
 	
 	public static TitleConfig read(final String folder) {
 		final Path configFile = Paths.get(folder, "customwindowtitle-client.toml");
@@ -46,7 +43,7 @@ public final class TitleConfig {
 					if (config.containsKey(key)) {
 						config.put(key, value);
 					}
-					else {
+					else if (!IGNORED_KEYS.contains(key)) {
 						throw new RuntimeException("CustomWindowTitle configuration has an invalid key: " + key);
 					}
 				});
@@ -55,25 +52,7 @@ public final class TitleConfig {
 			throw new RuntimeException("CustomWindowTitle configuration error", e);
 		}
 		
-		final String icon16 = config.get("icon16");
-		final String icon32 = config.get("icon32");
-		
-		final Path pathIcon16 = icon16.isEmpty() ? null : Paths.get(folder, icon16);
-		final Path pathIcon32 = icon32.isEmpty() ? null : Paths.get(folder, icon32);
-		
-		if ((pathIcon16 == null) != (pathIcon32 == null)) {
-			throw new RuntimeException("CustomWindowTitle configuration specifies only one icon, both 'icon16' and 'icon32' must be set.");
-		}
-		
-		if (pathIcon16 != null && Files.notExists(pathIcon16)) {
-			throw new RuntimeException("CustomWindowTitle 16x16 icon not found: " + pathIcon16);
-		}
-		
-		if (pathIcon32 != null && Files.notExists(pathIcon32)) {
-			throw new RuntimeException("CustomWindowTitle 32x32 icon not found: " + pathIcon32);
-		}
-		
-		return new TitleConfig(config.get("title"), pathIcon16, pathIcon32);
+		return new TitleConfig(config.get("title"));
 	}
 	
 	private static String parseTrimmedValue(String value) {
@@ -96,28 +75,12 @@ public final class TitleConfig {
 	}
 	
 	private final String title;
-	private final Path icon16;
-	private final Path icon32;
 	
-	private TitleConfig(final String title, final Path icon16, final Path icon32) {
+	private TitleConfig(final String title) {
 		this.title = title;
-		this.icon16 = icon16;
-		this.icon32 = icon32;
 	}
 	
 	public String getTitle() {
 		return title;
 	}
-	
-	public boolean hasIcon() {
-		return icon16 != null && icon32 != null;
-	}
-	
-	public IoSupplier<InputStream> readIcon16() {
-		return IoSupplier.create(icon16);
-	}
-	
-	public IoSupplier<InputStream> readIcon32() {
-		return IoSupplier.create(icon32);
-	}
 }
diff --git a/src/main/java/chylex/customwindowtitle/TitleParser.java b/src/main/java/chylex/customwindowtitle/TitleParser.java
index 9c3c2d2..0cf87c0 100644
--- a/src/main/java/chylex/customwindowtitle/TitleParser.java
+++ b/src/main/java/chylex/customwindowtitle/TitleParser.java
@@ -1,4 +1,5 @@
 package chylex.customwindowtitle;
+
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
@@ -11,7 +12,7 @@ public final class TitleParser {
 	private static final Logger logger = LogManager.getLogger("CustomWindowTitle");
 	
 	public static String parse(final String input) {
-		final StringBuffer buffer = new StringBuffer();
+		final StringBuilder buffer = new StringBuilder();
 		final Matcher matcher = tokenRegex.matcher(input);
 		
 		while (matcher.find()) {
diff --git a/src/main/java/chylex/customwindowtitle/TitleTokens.java b/src/main/java/chylex/customwindowtitle/TitleTokens.java
index d8c4536..97d30db 100644
--- a/src/main/java/chylex/customwindowtitle/TitleTokens.java
+++ b/src/main/java/chylex/customwindowtitle/TitleTokens.java
@@ -1,4 +1,5 @@
 package chylex.customwindowtitle;
+
 import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Function;
diff --git a/src/main/java/chylex/customwindowtitle/data/CommonTokenProvider.java b/src/main/java/chylex/customwindowtitle/data/CommonTokenProvider.java
index 45f9a4f..16ce3ac 100644
--- a/src/main/java/chylex/customwindowtitle/data/CommonTokenProvider.java
+++ b/src/main/java/chylex/customwindowtitle/data/CommonTokenProvider.java
@@ -1,9 +1,10 @@
 package chylex.customwindowtitle.data;
-import net.minecraft.client.Minecraft;
+
+import net.minecraft.SharedConstants;
 
 public interface CommonTokenProvider {
 	default String getMinecraftVersion() {
-		return Minecraft.getInstance().getGame().getVersion().getName();
+		return SharedConstants.getCurrentVersion().getName();
 	}
 	
 	String getModVersion(final String modId);
diff --git a/src/main/java/chylex/customwindowtitle/mixin/DisableVanillaTitle.java b/src/main/java/chylex/customwindowtitle/mixin/DisableVanillaTitle.java
index 0e86cda..3d44230 100644
--- a/src/main/java/chylex/customwindowtitle/mixin/DisableVanillaTitle.java
+++ b/src/main/java/chylex/customwindowtitle/mixin/DisableVanillaTitle.java
@@ -1,4 +1,5 @@
 package chylex.customwindowtitle.mixin;
+
 import net.minecraft.client.Minecraft;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;