diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
index c02b7def7..1896de7a5 100644
--- a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
+++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
@@ -1406,69 +1406,6 @@ public void SupportedOSPlatformConstFields ()
 			StringAssert.Contains ("[global::System.Runtime.Versioning.SupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain SupportedOSPlatform!");
 		}
 
-		[Test]
-		public void UnsupportedOSPlatform ()
-		{
-			var klass = SupportTypeBuilder.CreateClass ("java.code.MyClass", options);
-			klass.ApiRemovedSince = new AndroidSdkVersion (30);
-
-			generator.Context.ContextTypes.Push (klass);
-			generator.WriteType (klass, string.Empty, new GenerationInfo ("", "", "MyAssembly"));
-			generator.Context.ContextTypes.Pop ();
-
-			StringAssert.Contains ("[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain UnsupportedOSPlatform!");
-		}
-
-		[Test]
-		public void UnsupportedOSPlatformConstFields ()
-		{
-			var klass = new TestClass ("java.lang.Object", "com.mypackage.foo");
-			var field = new TestField ("java.lang.String", "bar").SetConstant ("MY_VALUE");
-
-			field.ApiRemovedSince = new AndroidSdkVersion (30);
-
-			klass.Fields.Add (field);
-
-			generator.Context.ContextTypes.Push (klass);
-			generator.WriteType (klass, string.Empty, new GenerationInfo ("", "", "MyAssembly"));
-			generator.Context.ContextTypes.Pop ();
-
-			StringAssert.Contains ("[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain UnsupportedOSPlatform!");
-		}
-
-
-		[Test]
-		public void UnsupportedOSPlatformIgnoresMethodOverrides ()
-		{
-			// Given:
-			// public class TextView {
-			//   public Object doThing () { ... }
-			// }
-			// public class TextView2 : TextView {
-			//   public Object doThing () { ... }   // removed-since = 30
-			// }
-			// We should not write [UnsupportedOSPlatform] on TextView2.doThing (), because the base method isn't "removed".
-			var xml = @$"
-			  
-			    
-			  
-			  
-			    
-			       
-			     
-			    
-			       
-			     
-			  
-			";
-
-			var gens = ParseApiDefinition (xml);
-			var klass = gens.Single (g => g.Name == "TextView2");
-			var actual = GetGeneratedTypeOutput (klass);
-
-			StringAssert.DoesNotContain ("[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android30.0\")]", actual, "Should contain UnsupportedOSPlatform!");
-		}
-
 		[Test]
 		public void StringPropertyOverride ([Values ("true", "false")] string final)
 		{
diff --git a/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs b/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
index 472be69f4..817086037 100644
--- a/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
+++ b/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
@@ -51,15 +51,6 @@ public void CreateClass_CorrectApiSinceOverridePackage ()
 			Assert.AreEqual (9, klass.ApiAvailableSince.ApiLevel);
 		}
 
-		[Test]
-		public void CreateClass_CorrectApiRemoved ()
-		{
-			var xml = XDocument.Parse ("");
-			var klass = XmlApiImporter.CreateClass (xml.Root, xml.Root.Element ("class"), opt);
-
-			Assert.AreEqual (7, klass.ApiRemovedSince.ApiLevel);
-		}
-
 		[Test]
 		public void CreateCtor_EnsureValidName ()
 		{
diff --git a/tools/generator/ApiVersionsSupport.cs b/tools/generator/ApiVersionsSupport.cs
index d512a4027..25f339c9a 100644
--- a/tools/generator/ApiVersionsSupport.cs
+++ b/tools/generator/ApiVersionsSupport.cs
@@ -20,7 +20,6 @@ public static class ApiVersionsSupport
 		public interface IApiAvailability
 		{
 			AndroidSdkVersion ApiAvailableSince { get; set; }
-			AndroidSdkVersion ApiRemovedSince { get; set; }
 		}
 
 		static IEnumerable FlattenGens (IEnumerable gens)
diff --git a/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs b/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
index 5016f66be..952c8903c 100644
--- a/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
@@ -159,7 +159,6 @@ public static Ctor CreateCtor (GenBase declaringType, XElement elem, CodeGenerat
 			var ctor = new Ctor (declaringType) {
 				AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
 				ApiAvailableSince = declaringType.ApiAvailableSince,
-				ApiRemovedSince = declaringType.ApiRemovedSince,
 				CustomAttributes = elem.XGetAttribute ("customAttributes"),
 				Deprecated = elem.Deprecated (),
 				DeprecatedSince = elem.XGetAttributeAsAndroidSdkVersionOrNull ("deprecated-since"),
@@ -212,7 +211,6 @@ public static Field CreateField (GenBase declaringType, XElement elem, CodeGener
 			var field = new Field {
 				AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
 				ApiAvailableSince = declaringType.ApiAvailableSince,
-				ApiRemovedSince = declaringType.ApiRemovedSince,
 				DeprecatedComment = elem.XGetAttribute ("deprecated"),
 				DeprecatedSince = elem.XGetAttributeAsAndroidSdkVersionOrNull ("deprecated-since"),
 				IsAcw = true,
@@ -371,7 +369,6 @@ public static Method CreateMethod (GenBase declaringType, XElement elem, CodeGen
 			var method = new Method (declaringType) {
 				AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
 				ApiAvailableSince = declaringType.ApiAvailableSince,
-				ApiRemovedSince = declaringType.ApiRemovedSince,
 				ArgsType = elem.Attribute ("argsType")?.Value,
 				CustomAttributes = elem.XGetAttribute ("customAttributes"),
 				Deprecated = elem.Deprecated (),
@@ -518,12 +515,9 @@ static XElement GetPreviousClass (XNode n, string nameValue)
 		// Elements need to be passed in the above order. (package, class, member)
 		static void FillApiSince (ApiVersionsSupport.IApiAvailability model, params XElement[] elems)
 		{
-			foreach (var elem in elems) {
+			foreach (var elem in elems)
 				if (AndroidSdkVersion.TryParse (elem.XGetAttribute ("api-since"), out var result))
 					model.ApiAvailableSince = result;
-				if (AndroidSdkVersion.TryParse (elem.XGetAttribute ("removed-since"), out var removed))
-					model.ApiRemovedSince = removed;
-			}
 		}
 
 		static bool IsObfuscatedName (int threshold, string name)
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
index 1a3f89f5b..f10f07e07 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
@@ -9,7 +9,6 @@ public class Field : ApiVersionsSupport.IApiAvailability, ISourceLineInfo
 		public string AnnotatedVisibility { get; set; }
 		public string Annotation { get; set; }
 		public AndroidSdkVersion ApiAvailableSince { get; set; }
-		public AndroidSdkVersion ApiRemovedSince { get; set; }
 		public string DeprecatedComment { get; set; }
 		public AndroidSdkVersion? DeprecatedSince { get; set; }
 		public bool IsAcw { get; set; }
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
index 317835581..d109a4653 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
@@ -188,8 +188,6 @@ IEnumerable Ancestors ()
 
 		public AndroidSdkVersion ApiAvailableSince { get; set; }
 
-		public AndroidSdkVersion ApiRemovedSince { get; set; }
-
 		public virtual ClassGen BaseGen => null;
 
 		public GenBase BaseSymbol =>
@@ -323,11 +321,6 @@ public void FixupMethodOverrides (CodeGenerationOptions opt)
 								m.DeprecatedSince = bm.DeprecatedSince;
 						}
 
-						// If a "removed" method overrides a "not removed" method, the method was
-						// likely moved to a base class, so don't mark it as removed.
-						if (m.ApiRemovedSince > 0 && bm.ApiRemovedSince == 0)
-							m.ApiRemovedSince = default;
-
 						break;
 					}
 				}
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
index 2a8680faa..12bd9d16f 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
@@ -16,7 +16,6 @@ protected MethodBase (GenBase declaringType)
 		public string AnnotatedVisibility { get; set; }
 		public string Annotation { get; internal set; }
 		public AndroidSdkVersion ApiAvailableSince { get; set; }
-		public AndroidSdkVersion ApiRemovedSince { get; set; }
 		public string AssemblyName { get; set; }
 		public GenBase DeclaringType { get; }
 		public string Deprecated { get; set; }
diff --git a/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs b/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs
deleted file mode 100644
index b15a70cbd..000000000
--- a/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Xamarin.SourceWriter;
-
-using Java.Interop.Tools.Generator;
-
-namespace generator.SourceWriters
-{
-	public class UnsupportedOSPlatformAttr : AttributeWriter
-	{
-		public AndroidSdkVersion Version { get; }
-
-		public UnsupportedOSPlatformAttr (AndroidSdkVersion version) => Version = version;
-
-		public override void WriteAttribute (CodeWriter writer)
-		{
-			var apiLevel = Version.MinorRelease == 0
-				? $"{Version.ApiLevel}.0"
-				: Version.ToString ();
-			writer.WriteLine ($"[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android{apiLevel}\")]");
-		}
-	}
-}
diff --git a/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs b/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
index 626eb1cb0..8d7faf4dd 100644
--- a/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
+++ b/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
@@ -308,10 +308,7 @@ public static void AddParameterListCallArgs (List body, ParameterList pa
 		}
 
 		public static void AddSupportedOSPlatform (List attributes, ApiVersionsSupport.IApiAvailability member, CodeGenerationOptions opt)
-		{
-			AddSupportedOSPlatform (attributes, member.ApiAvailableSince, opt);
-			AddUnsupportedOSPlatform (attributes, member.ApiRemovedSince, opt);
-		}
+			=> AddSupportedOSPlatform (attributes, member.ApiAvailableSince, opt);
 
 		public static void AddSupportedOSPlatform (List attributes, AndroidSdkVersion since, CodeGenerationOptions opt)
 		{
@@ -321,13 +318,6 @@ public static void AddSupportedOSPlatform (List attributes, And
 				attributes.Add (new SupportedOSPlatformAttr (since));
 		}
 
-		public static void AddUnsupportedOSPlatform (List attributes, AndroidSdkVersion since, CodeGenerationOptions opt)
-		{
-			// Here it makes sense to still write 'android15' because it will be missing in later versions like `android35`.
-			if (since > 0 && opt.CodeGenerationTarget == CodeGenerationTarget.XAJavaInterop1)
-				attributes.Add (new UnsupportedOSPlatformAttr (since));
-		}
-
 		public static void AddObsolete (List attributes, string message, CodeGenerationOptions opt, bool forceDeprecate = false, bool isError = false, AndroidSdkVersion? deprecatedSince = null)
 		{
 			// Bail if we're not obsolete