diff --git a/objectivec/DevTools/compile_testing_protos.sh b/objectivec/DevTools/compile_testing_protos.sh
index 7bdfbb8..fb8a853 100755
--- a/objectivec/DevTools/compile_testing_protos.sh
+++ b/objectivec/DevTools/compile_testing_protos.sh
@@ -42,10 +42,8 @@
   objectivec/Tests/unittest_extension_chain_e.proto
   objectivec/Tests/unittest_extension_chain_f.proto
   objectivec/Tests/unittest_extension_chain_g.proto
-  objectivec/Tests/unittest_import_public_lite.proto
   objectivec/Tests/unittest_import_public.proto
   objectivec/Tests/unittest_import.proto
-  objectivec/Tests/unittest_mset_wire_format.proto
   objectivec/Tests/unittest_mset.proto
   objectivec/Tests/unittest_objc_options.proto
   objectivec/Tests/unittest_objc_startup.proto
@@ -128,8 +126,11 @@
 # -----------------------------------------------------------------------------
 # Generate the Objective C specific testing protos.
 
-"${PROTOC}"                                  \
-  --objc_out="${OUTPUT_DIR}"                 \
-  --proto_path=.                             \
-  --proto_path=src                           \
+"${PROTOC}"                                                                 \
+  --objc_out="${OUTPUT_DIR}"                                                \
+  --objc_opt=expected_prefixes_path=objectivec/Tests/expected_prefixes.txt  \
+  --objc_opt=prefixes_must_be_registered=yes                                \
+  --objc_opt=require_prefixes=yes                                           \
+  --proto_path=.                                                            \
+  --proto_path=src                                                          \
   "${OBJC_TEST_PROTO_FILES[@]}"
diff --git a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
index 96947b0..bb52e45 100644
--- a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
@@ -218,9 +218,7 @@
 		F44FEABE28B5465900EC57B3 /* unittest_deprecated_file.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_deprecated_file.proto; sourceTree = "<group>"; };
 		F44FEABF28B5465900EC57B3 /* unittest_mset.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_mset.proto; sourceTree = "<group>"; };
 		F44FEAC028B5465900EC57B3 /* unittest_import.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import.proto; sourceTree = "<group>"; };
-		F44FEAC128B5465900EC57B3 /* unittest_mset_wire_format.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_mset_wire_format.proto; sourceTree = "<group>"; };
 		F44FEAC228B5465900EC57B3 /* unittest.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest.proto; sourceTree = "<group>"; };
-		F44FEAC328B5465900EC57B3 /* unittest_import_public_lite.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import_public_lite.proto; sourceTree = "<group>"; };
 		F44FEAC428B5465900EC57B3 /* unittest_preserve_unknown_enum.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_preserve_unknown_enum.proto; sourceTree = "<group>"; };
 		F44FEAC528B5465900EC57B3 /* any_test.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = any_test.proto; sourceTree = "<group>"; };
 		F44FEAC628B5465900EC57B3 /* unittest_import_public.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import_public.proto; sourceTree = "<group>"; };
@@ -519,10 +517,8 @@
 				F44FEAC928B5465900EC57B3 /* unittest_extension_chain_e.proto */,
 				F44FEAD028B5465A00EC57B3 /* unittest_extension_chain_f.proto */,
 				F44FEAC828B5465900EC57B3 /* unittest_extension_chain_g.proto */,
-				F44FEAC328B5465900EC57B3 /* unittest_import_public_lite.proto */,
 				F44FEAC628B5465900EC57B3 /* unittest_import_public.proto */,
 				F44FEAC028B5465900EC57B3 /* unittest_import.proto */,
-				F44FEAC128B5465900EC57B3 /* unittest_mset_wire_format.proto */,
 				F44FEABF28B5465900EC57B3 /* unittest_mset.proto */,
 				8B35468421A616F6000BD30D /* unittest_objc_options.proto */,
 				F4CF31701B162ED800BD9B06 /* unittest_objc_startup.proto */,
diff --git a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
index 5dccdeb..8bbe96b 100644
--- a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
@@ -226,8 +226,6 @@
 		F44FEAD628B546E300EC57B3 /* unittest_deprecated.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_deprecated.proto; sourceTree = "<group>"; };
 		F44FEAD728B546E300EC57B3 /* any_test.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = any_test.proto; sourceTree = "<group>"; };
 		F44FEAD828B546E300EC57B3 /* unittest_extension_chain_b.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_extension_chain_b.proto; sourceTree = "<group>"; };
-		F44FEAD928B546E300EC57B3 /* unittest_import_public_lite.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import_public_lite.proto; sourceTree = "<group>"; };
-		F44FEADA28B546E300EC57B3 /* unittest_mset_wire_format.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_mset_wire_format.proto; sourceTree = "<group>"; };
 		F44FEADB28B546E300EC57B3 /* unittest_import.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import.proto; sourceTree = "<group>"; };
 		F44FEADC28B546E300EC57B3 /* unittest_mset.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_mset.proto; sourceTree = "<group>"; };
 		F44FEADD28B546E300EC57B3 /* unittest.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest.proto; sourceTree = "<group>"; };
@@ -525,10 +523,8 @@
 				F44FEAE328B546E300EC57B3 /* unittest_extension_chain_e.proto */,
 				F44FEADE28B546E300EC57B3 /* unittest_extension_chain_f.proto */,
 				F44FEAE128B546E300EC57B3 /* unittest_extension_chain_g.proto */,
-				F44FEAD928B546E300EC57B3 /* unittest_import_public_lite.proto */,
 				F44FEAE028B546E300EC57B3 /* unittest_import_public.proto */,
 				F44FEADB28B546E300EC57B3 /* unittest_import.proto */,
-				F44FEADA28B546E300EC57B3 /* unittest_mset_wire_format.proto */,
 				F44FEADC28B546E300EC57B3 /* unittest_mset.proto */,
 				8B35468621A61EB2000BD30D /* unittest_objc_options.proto */,
 				F4CF31711B162EF500BD9B06 /* unittest_objc_startup.proto */,
diff --git a/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
index c2925a9..6faf5eb 100644
--- a/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
@@ -218,9 +218,7 @@
 		F4487C801AAF62FC00531423 /* GPBMessageTests+Serialization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GPBMessageTests+Serialization.m"; sourceTree = "<group>"; };
 		F4487C841AAF6AC500531423 /* GPBMessageTests+Merge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GPBMessageTests+Merge.m"; sourceTree = "<group>"; };
 		F44929021C866B3B00C2548A /* GPBCodedOutputStream_PackagePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GPBCodedOutputStream_PackagePrivate.h; sourceTree = "<group>"; };
-		F44FEAE428B5471300EC57B3 /* unittest_import_public_lite.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import_public_lite.proto; sourceTree = "<group>"; };
 		F44FEAE528B5471300EC57B3 /* unittest_extension_chain_a.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_extension_chain_a.proto; sourceTree = "<group>"; };
-		F44FEAE628B5471300EC57B3 /* unittest_mset_wire_format.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_mset_wire_format.proto; sourceTree = "<group>"; };
 		F44FEAE728B5471300EC57B3 /* unittest_extension_chain_c.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_extension_chain_c.proto; sourceTree = "<group>"; };
 		F44FEAE828B5471300EC57B3 /* unittest_extension_chain_g.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_extension_chain_g.proto; sourceTree = "<group>"; };
 		F44FEAE928B5471300EC57B3 /* unittest_import.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = unittest_import.proto; sourceTree = "<group>"; };
@@ -525,10 +523,8 @@
 				F44FEAF428B5471300EC57B3 /* unittest_extension_chain_e.proto */,
 				F44FEAEC28B5471300EC57B3 /* unittest_extension_chain_f.proto */,
 				F44FEAE828B5471300EC57B3 /* unittest_extension_chain_g.proto */,
-				F44FEAE428B5471300EC57B3 /* unittest_import_public_lite.proto */,
 				F44FEAEB28B5471300EC57B3 /* unittest_import_public.proto */,
 				F44FEAE928B5471300EC57B3 /* unittest_import.proto */,
-				F44FEAE628B5471300EC57B3 /* unittest_mset_wire_format.proto */,
 				F44FEAF128B5471300EC57B3 /* unittest_mset.proto */,
 				8B35468621A61EB2000BD30D /* unittest_objc_options.proto */,
 				F4CF31711B162EF500BD9B06 /* unittest_objc_startup.proto */,
diff --git a/objectivec/Tests/GPBARCUnittestProtos.m b/objectivec/Tests/GPBARCUnittestProtos.m
index 08b8426..fa23692 100644
--- a/objectivec/Tests/GPBARCUnittestProtos.m
+++ b/objectivec/Tests/GPBARCUnittestProtos.m
@@ -40,7 +40,6 @@
 #import "objectivec/Tests/UnittestDeprecatedFile.pbobjc.h"
 #import "objectivec/Tests/UnittestImport.pbobjc.h"
 #import "objectivec/Tests/UnittestImportPublic.pbobjc.h"
-#import "objectivec/Tests/UnittestImportPublicLite.pbobjc.h"
 #import "objectivec/Tests/UnittestMset.pbobjc.h"
 #import "objectivec/Tests/UnittestObjc.pbobjc.h"
 #import "objectivec/Tests/UnittestObjcOptions.pbobjc.h"
diff --git a/objectivec/Tests/GPBUnittestProtos.m b/objectivec/Tests/GPBUnittestProtos.m
index bebe4ee..6208e12 100644
--- a/objectivec/Tests/GPBUnittestProtos.m
+++ b/objectivec/Tests/GPBUnittestProtos.m
@@ -40,9 +40,7 @@
 #import "objectivec/Tests/UnittestDeprecatedFile.pbobjc.m"
 #import "objectivec/Tests/UnittestImport.pbobjc.m"
 #import "objectivec/Tests/UnittestImportPublic.pbobjc.m"
-#import "objectivec/Tests/UnittestImportPublicLite.pbobjc.m"
 #import "objectivec/Tests/UnittestMset.pbobjc.m"
-#import "objectivec/Tests/UnittestMsetWireFormat.pbobjc.m"
 #import "objectivec/Tests/UnittestObjc.pbobjc.m"
 #import "objectivec/Tests/UnittestObjcOptions.pbobjc.m"
 #import "objectivec/Tests/UnittestObjcStartup.pbobjc.m"
diff --git a/objectivec/Tests/GPBWellKnownTypesTest.m b/objectivec/Tests/GPBWellKnownTypesTest.m
index bd25d55..b7f28a6 100644
--- a/objectivec/Tests/GPBWellKnownTypesTest.m
+++ b/objectivec/Tests/GPBWellKnownTypesTest.m
@@ -161,9 +161,9 @@
 
   // Set and extract covers most of the code.
 
-  TestAny *subMessage = [TestAny message];
+  AnyTestMessage *subMessage = [AnyTestMessage message];
   subMessage.int32Value = 12345;
-  TestAny *message = [TestAny message];
+  AnyTestMessage *message = [AnyTestMessage message];
   NSError *err = nil;
   message.anyValue = [GPBAny anyWithMessage:subMessage error:&err];
   XCTAssertNil(err);
@@ -171,14 +171,14 @@
   NSData *data = message.data;
   XCTAssertNotNil(data);
 
-  TestAny *message2 = [TestAny parseFromData:data error:&err];
+  AnyTestMessage *message2 = [AnyTestMessage parseFromData:data error:&err];
   XCTAssertNil(err);
   XCTAssertNotNil(message2);
   XCTAssertTrue(message2.hasAnyValue);
 
-  TestAny *subMessage2 =
-      (TestAny *)[message.anyValue unpackMessageClass:[TestAny class]
-                                                error:&err];
+  AnyTestMessage *subMessage2 =
+      (AnyTestMessage *)[message.anyValue unpackMessageClass:[AnyTestMessage class]
+                                                       error:&err];
   XCTAssertNil(err);
   XCTAssertNotNil(subMessage2);
   XCTAssertEqual(subMessage2.int32Value, 12345);
@@ -189,9 +189,9 @@
   NSData *data2 = message.data;
   XCTAssertEqualObjects(data2, data);
 
-  TestAny *subMessage3 =
-      (TestAny *)[message.anyValue unpackMessageClass:[TestAny class]
-                                                error:NULL];
+  AnyTestMessage *subMessage3 =
+      (AnyTestMessage *)[message.anyValue unpackMessageClass:[AnyTestMessage class]
+                                                       error:NULL];
   XCTAssertNotNil(subMessage3);
   XCTAssertEqualObjects(subMessage2, subMessage3);
 
diff --git a/objectivec/Tests/GPBWireFormatTests.m b/objectivec/Tests/GPBWireFormatTests.m
index 24d68f9..e100667 100644
--- a/objectivec/Tests/GPBWireFormatTests.m
+++ b/objectivec/Tests/GPBWireFormatTests.m
@@ -35,7 +35,6 @@
 #import "GPBUnknownField_PackagePrivate.h"
 #import "objectivec/Tests/Unittest.pbobjc.h"
 #import "objectivec/Tests/UnittestMset.pbobjc.h"
-#import "objectivec/Tests/UnittestMsetWireFormat.pbobjc.h"
 
 @interface WireFormatTests : GPBTestCase
 @end
@@ -144,11 +143,11 @@
 const int kUnknownTypeId = 1550055;
 
 - (void)testSerializeMessageSet {
-  // Set up a TestMessageSet with two known messages and an unknown one.
-  TestMessageSet* message_set = [TestMessageSet message];
-  [[message_set getExtension:[TestMessageSetExtension1 messageSetExtension]]
+  // Set up a MSetMessage with two known messages and an unknown one.
+  MSetMessage* message_set = [MSetMessage message];
+  [[message_set getExtension:[MSetMessageExtension1 messageSetExtension]]
       setI:123];
-  [[message_set getExtension:[TestMessageSetExtension2 messageSetExtension]]
+  [[message_set getExtension:[MSetMessageExtension2 messageSetExtension]]
       setStr:@"foo"];
   GPBUnknownField* unknownField =
       [[[GPBUnknownField alloc] initWithNumber:kUnknownTypeId] autorelease];
@@ -160,26 +159,26 @@
 
   NSData* data = [message_set data];
 
-  // Parse back using RawMessageSet and check the contents.
-  RawMessageSet* raw = [RawMessageSet parseFromData:data error:NULL];
+  // Parse back using MSetRawMessageSet and check the contents.
+  MSetRawMessageSet* raw = [MSetRawMessageSet parseFromData:data error:NULL];
 
   XCTAssertEqual([raw.unknownFields countOfFields], (NSUInteger)0);
 
   XCTAssertEqual(raw.itemArray.count, (NSUInteger)3);
   XCTAssertEqual((uint32_t)[raw.itemArray[0] typeId],
-                 [TestMessageSetExtension1 messageSetExtension].fieldNumber);
+                 [MSetMessageExtension1 messageSetExtension].fieldNumber);
   XCTAssertEqual((uint32_t)[raw.itemArray[1] typeId],
-                 [TestMessageSetExtension2 messageSetExtension].fieldNumber);
+                 [MSetMessageExtension2 messageSetExtension].fieldNumber);
   XCTAssertEqual([raw.itemArray[2] typeId], kUnknownTypeId);
 
-  TestMessageSetExtension1* message1 =
-      [TestMessageSetExtension1 parseFromData:[((RawMessageSet_Item*)raw.itemArray[0]) message]
-                                        error:NULL];
+  MSetMessageExtension1* message1 =
+      [MSetMessageExtension1 parseFromData:[((MSetRawMessageSet_Item*)raw.itemArray[0]) message]
+                                     error:NULL];
   XCTAssertEqual(message1.i, 123);
 
-  TestMessageSetExtension2* message2 =
-      [TestMessageSetExtension2 parseFromData:[((RawMessageSet_Item*)raw.itemArray[1]) message]
-                                        error:NULL];
+  MSetMessageExtension2* message2 =
+      [MSetMessageExtension2 parseFromData:[((MSetRawMessageSet_Item*)raw.itemArray[1]) message]
+                                     error:NULL];
   XCTAssertEqualObjects(message2.str, @"foo");
 
   XCTAssertEqualObjects([raw.itemArray[2] message],
@@ -187,29 +186,29 @@
 }
 
 - (void)testParseMessageSet {
-  // Set up a RawMessageSet with two known messages and an unknown one.
-  RawMessageSet* raw = [RawMessageSet message];
+  // Set up a MSetRawMessageSet with two known messages and an unknown one.
+  MSetRawMessageSet* raw = [MSetRawMessageSet message];
 
   {
-    RawMessageSet_Item* item = [RawMessageSet_Item message];
-    item.typeId = [TestMessageSetExtension1 messageSetExtension].fieldNumber;
-    TestMessageSetExtension1* message = [TestMessageSetExtension1 message];
+    MSetRawMessageSet_Item* item = [MSetRawMessageSet_Item message];
+    item.typeId = [MSetMessageExtension1 messageSetExtension].fieldNumber;
+    MSetMessageExtension1* message = [MSetMessageExtension1 message];
     message.i = 123;
     item.message = [message data];
     [raw.itemArray addObject:item];
   }
 
   {
-    RawMessageSet_Item* item = [RawMessageSet_Item message];
-    item.typeId = [TestMessageSetExtension2 messageSetExtension].fieldNumber;
-    TestMessageSetExtension2* message = [TestMessageSetExtension2 message];
+    MSetRawMessageSet_Item* item = [MSetRawMessageSet_Item message];
+    item.typeId = [MSetMessageExtension2 messageSetExtension].fieldNumber;
+    MSetMessageExtension2* message = [MSetMessageExtension2 message];
     message.str = @"foo";
     item.message = [message data];
     [raw.itemArray addObject:item];
   }
 
   {
-    RawMessageSet_Item* item = [RawMessageSet_Item message];
+    MSetRawMessageSet_Item* item = [MSetRawMessageSet_Item message];
     item.typeId = kUnknownTypeId;
     item.message = [NSData dataWithBytes:"bar" length:3];
     [raw.itemArray addObject:item];
@@ -217,19 +216,19 @@
 
   NSData* data = [raw data];
 
-  // Parse as a TestMessageSet and check the contents.
-  TestMessageSet* messageSet =
-      [TestMessageSet parseFromData:data
-                  extensionRegistry:[UnittestMsetRoot extensionRegistry]
+  // Parse as a MSetMessage and check the contents.
+  MSetMessage* messageSet =
+      [MSetMessage parseFromData:data
+                  extensionRegistry:[MSetUnittestMsetRoot extensionRegistry]
                               error:NULL];
 
   XCTAssertEqual(
       [[messageSet
-          getExtension:[TestMessageSetExtension1 messageSetExtension]] i],
+          getExtension:[MSetMessageExtension1 messageSetExtension]] i],
       123);
   XCTAssertEqualObjects(
       [[messageSet
-          getExtension:[TestMessageSetExtension2 messageSetExtension]] str],
+          getExtension:[MSetMessageExtension2 messageSetExtension]] str],
       @"foo");
 
   XCTAssertEqual([messageSet.unknownFields countOfFields], (NSUInteger)1);
diff --git a/objectivec/Tests/any_test.proto b/objectivec/Tests/any_test.proto
index 032c620..f2461bf 100644
--- a/objectivec/Tests/any_test.proto
+++ b/objectivec/Tests/any_test.proto
@@ -30,11 +30,13 @@
 
 syntax = "proto3";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.any;
 
 import "google/protobuf/any.proto";
 
-message TestAny {
+option objc_class_prefix = "Any";
+
+message TestMessage {
   int32 int32_value = 1;
   google.protobuf.Any any_value = 2;
   repeated google.protobuf.Any repeated_any_value = 3;
diff --git a/objectivec/Tests/expected_prefixes.txt b/objectivec/Tests/expected_prefixes.txt
new file mode 100644
index 0000000..1665ab1
--- /dev/null
+++ b/objectivec/Tests/expected_prefixes.txt
@@ -0,0 +1,12 @@
+objc.protobuf.tests = ""  # Explicit empty prefix
+objc.protobuf.tests.any = Any
+objc.protobuf.tests.chain = Chain
+objc.protobuf.tests.cycle = Cycle
+objc.protobuf.tests.deprecated = Dep
+objc.protobuf.tests.deprecated_file = FileDep
+objc.protobuf.tests.import = Import
+objc.protobuf.tests.mset = MSet
+objc.protobuf.tests.options = GPBTEST
+objc.protobuf.tests.proto3_preserve_unknown_enum = UnknownEnums
+objc.protobuf.tests.public_import = PublicImport
+objc.protobuf.tests.startup = TestObjCStartup
diff --git a/objectivec/Tests/map_proto2_unittest.proto b/objectivec/Tests/map_proto2_unittest.proto
index 30e4ae1..d7b494c 100644
--- a/objectivec/Tests/map_proto2_unittest.proto
+++ b/objectivec/Tests/map_proto2_unittest.proto
@@ -32,11 +32,11 @@
 
 import "objectivec/Tests/unittest_import.proto";
 
-// We don't put this in a package within proto2 because we need to make sure
-// that the generated code doesn't depend on being in the proto2 namespace.
-// In map_test_util.h we do "using namespace unittest = objc.protobuf.tests".
 package objc.protobuf.tests;
 
+// Explicit empty prefix, tests some validations code paths also.
+option objc_class_prefix = "";
+
 enum Proto2MapEnum {
   PROTO2_MAP_ENUM_FOO   = 0;
   PROTO2_MAP_ENUM_BAR   = 1;
@@ -61,7 +61,7 @@
 }
 
 message TestImportEnumMap {
-  map<int32, objc.protobuf.tests.import.ImportEnumForMap> import_enum_amp = 1;
+  map<int32, objc.protobuf.tests.import.EnumForMap> import_enum_amp = 1;
 }
 
 message TestIntIntMap {
diff --git a/objectivec/Tests/map_unittest.proto b/objectivec/Tests/map_unittest.proto
index 8a4a529..ba41439 100644
--- a/objectivec/Tests/map_unittest.proto
+++ b/objectivec/Tests/map_unittest.proto
@@ -32,11 +32,11 @@
 
 import "objectivec/Tests/unittest.proto";
 
-// We don't put this in a package within proto2 because we need to make sure
-// that the generated code doesn't depend on being in the proto2 namespace.
-// In map_test_util.h we do "using namespace unittest = objc.protobuf.tests".
 package objc.protobuf.tests;
 
+// Explicit empty prefix, tests some validations code paths also.
+option objc_class_prefix = "";
+
 // Tests maps.
 message TestMap {
   map<int32, int32> map_int32_int32 = 1;
diff --git a/objectivec/Tests/unittest.proto b/objectivec/Tests/unittest.proto
index 6414993..31353b4 100644
--- a/objectivec/Tests/unittest.proto
+++ b/objectivec/Tests/unittest.proto
@@ -28,21 +28,15 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Author: kenton@google.com (Kenton Varda)
-//  Based on original Protocol Buffers design by
-//  Sanjay Ghemawat, Jeff Dean, and others.
-//
-// A proto file we will use for unit testing.
-//
 // LINT: ALLOW_GROUPS, LEGACY_NAMES
 
 syntax = "proto2";
 
 import "objectivec/Tests/unittest_import.proto";
 
-// We don't put this in a package within proto2 because we need to make sure
-// that the generated code doesn't depend on being in the proto2 namespace.
-// In test_util.h we do "using namespace unittest = objc.protobuf.tests".
+// Explicit empty prefix, tests some validations code paths also.
+option objc_class_prefix = "";
+
 package objc.protobuf.tests;
 
 // This proto includes every type of field in both singular and repeated
@@ -85,17 +79,17 @@
 
   optional NestedMessage                        optional_nested_message  = 18;
   optional ForeignMessage                       optional_foreign_message = 19;
-  optional objc.protobuf.tests.import.ImportMessage optional_import_message  = 20;
+  optional objc.protobuf.tests.import.Message   optional_import_message  = 20;
 
   optional NestedEnum                           optional_nested_enum     = 21;
   optional ForeignEnum                          optional_foreign_enum    = 22;
-  optional objc.protobuf.tests.import.ImportEnum    optional_import_enum     = 23;
+  optional objc.protobuf.tests.import.Enum      optional_import_enum     = 23;
 
   optional string optional_string_piece = 24 [ctype=STRING_PIECE];
   optional string optional_cord = 25 [ctype=CORD];
 
   // Defined in unittest_import_public.proto
-  optional objc.protobuf.tests.import.PublicImportMessage
+  optional objc.protobuf.tests.public_import.Message
       optional_public_import_message = 26;
 
   optional NestedMessage optional_lazy_message = 27 [lazy=true];
@@ -124,11 +118,11 @@
 
   repeated NestedMessage                        repeated_nested_message  = 48;
   repeated ForeignMessage                       repeated_foreign_message = 49;
-  repeated objc.protobuf.tests.import.ImportMessage repeated_import_message  = 50;
+  repeated objc.protobuf.tests.import.Message   repeated_import_message  = 50;
 
   repeated NestedEnum                           repeated_nested_enum     = 51;
   repeated ForeignEnum                          repeated_foreign_enum    = 52;
-  repeated objc.protobuf.tests.import.ImportEnum    repeated_import_enum     = 53;
+  repeated objc.protobuf.tests.import.Enum      repeated_import_enum     = 53;
 
   repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
   repeated string repeated_cord = 55 [ctype=CORD];
@@ -154,7 +148,7 @@
 
   optional NestedEnum  default_nested_enum  = 81 [default = BAR        ];
   optional ForeignEnum default_foreign_enum = 82 [default = FOREIGN_BAR];
-  optional objc.protobuf.tests.import.ImportEnum
+  optional objc.protobuf.tests.import.Enum
       default_import_enum = 83 [default = IMPORT_BAR];
 
   optional string default_string_piece = 84 [ctype=STRING_PIECE,default="abc"];
@@ -241,18 +235,18 @@
 
   optional TestAllTypes.NestedMessage optional_nested_message_extension = 18;
   optional ForeignMessage optional_foreign_message_extension = 19;
-  optional objc.protobuf.tests.import.ImportMessage
+  optional objc.protobuf.tests.import.Message
     optional_import_message_extension = 20;
 
   optional TestAllTypes.NestedEnum optional_nested_enum_extension = 21;
   optional ForeignEnum optional_foreign_enum_extension = 22;
-  optional objc.protobuf.tests.import.ImportEnum
+  optional objc.protobuf.tests.import.Enum
     optional_import_enum_extension = 23;
 
   optional string optional_string_piece_extension = 24 [ctype=STRING_PIECE];
   optional string optional_cord_extension = 25 [ctype=CORD];
 
-  optional objc.protobuf.tests.import.PublicImportMessage
+  optional objc.protobuf.tests.public_import.Message
     optional_public_import_message_extension = 26;
 
   optional TestAllTypes.NestedMessage
@@ -283,12 +277,12 @@
 
   repeated TestAllTypes.NestedMessage repeated_nested_message_extension = 48;
   repeated ForeignMessage repeated_foreign_message_extension = 49;
-  repeated objc.protobuf.tests.import.ImportMessage
+  repeated objc.protobuf.tests.import.Message
     repeated_import_message_extension = 50;
 
   repeated TestAllTypes.NestedEnum repeated_nested_enum_extension = 51;
   repeated ForeignEnum repeated_foreign_enum_extension = 52;
-  repeated objc.protobuf.tests.import.ImportEnum
+  repeated objc.protobuf.tests.import.Enum
     repeated_import_enum_extension = 53;
 
   repeated string repeated_string_piece_extension = 54 [ctype=STRING_PIECE];
@@ -318,7 +312,7 @@
     default_nested_enum_extension = 81 [default = BAR];
   optional ForeignEnum
     default_foreign_enum_extension = 82 [default = FOREIGN_BAR];
-  optional objc.protobuf.tests.import.ImportEnum
+  optional objc.protobuf.tests.import.Enum
     default_import_enum_extension = 83 [default = IMPORT_BAR];
 
   optional string default_string_piece_extension = 84 [ctype=STRING_PIECE,
diff --git a/objectivec/Tests/unittest_cycle.proto b/objectivec/Tests/unittest_cycle.proto
index 6d6927d..91e33ce 100644
--- a/objectivec/Tests/unittest_cycle.proto
+++ b/objectivec/Tests/unittest_cycle.proto
@@ -29,7 +29,9 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.cycle;
+
+option objc_class_prefix = "Cycle";
 
 // Cycles in the Message graph can cause problems for message class
 // initialization order.
@@ -37,20 +39,20 @@
 // You can't make a object graph that spans files, so this can only be done
 // within a single proto file.
 
-message CycleFoo {
-  optional CycleFoo a_foo = 1;
-  optional CycleBar a_bar = 2;
-  optional CycleBaz a_baz = 3;
+message Foo {
+  optional Foo a_foo = 1;
+  optional Bar a_bar = 2;
+  optional Baz a_baz = 3;
 }
 
-message CycleBar {
-  optional CycleBar a_bar = 1;
-  optional CycleBaz a_baz = 2;
-  optional CycleFoo a_foo = 3;
+message Bar {
+  optional Bar a_bar = 1;
+  optional Baz a_baz = 2;
+  optional Foo a_foo = 3;
 }
 
-message CycleBaz {
-  optional CycleBaz a_baz = 1;
-  optional CycleFoo a_foo = 2;
-  optional CycleBar a_bar = 3;
+message Baz {
+  optional Baz a_baz = 1;
+  optional Foo a_foo = 2;
+  optional Bar a_bar = 3;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_a.proto b/objectivec/Tests/unittest_extension_chain_a.proto
index bcce42a..2e09a40 100644
--- a/objectivec/Tests/unittest_extension_chain_a.proto
+++ b/objectivec/Tests/unittest_extension_chain_a.proto
@@ -29,7 +29,7 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest.proto";
 
@@ -37,15 +37,17 @@
 import "objectivec/Tests/unittest_extension_chain_c.proto";
 import "objectivec/Tests/unittest_extension_chain_d.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should end up adding the local extension and merging
 // in the extensions from D's Root (unittest and C will come via D's).
 
-message ChainAMessage {
-  optional ChainBMessage b = 1;
-  optional ChainCMessage c = 2;
-  optional ChainDMessage d = 3;
+message AMessage {
+  optional BMessage b = 1;
+  optional CMessage c = 2;
+  optional DMessage d = 3;
 }
 
-extend TestAllExtensions {
+extend objc.protobuf.tests.TestAllExtensions {
   optional int32 chain_a_extension = 10001;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_b.proto b/objectivec/Tests/unittest_extension_chain_b.proto
index a4055fe..5cf7ea3 100644
--- a/objectivec/Tests/unittest_extension_chain_b.proto
+++ b/objectivec/Tests/unittest_extension_chain_b.proto
@@ -29,19 +29,21 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest.proto";
 
 import "objectivec/Tests/unittest_extension_chain_c.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should end up adding the local extension and merging
 // in the extensions from C's Root (unittest will come via C's).
 
-message ChainBMessage {
-  optional ChainCMessage c = 1;
+message BMessage {
+  optional CMessage c = 1;
 }
 
-extend TestAllExtensions {
+extend objc.protobuf.tests.TestAllExtensions {
   optional int32 chain_b_extension = 10002;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_c.proto b/objectivec/Tests/unittest_extension_chain_c.proto
index b30e20b..b07b288 100644
--- a/objectivec/Tests/unittest_extension_chain_c.proto
+++ b/objectivec/Tests/unittest_extension_chain_c.proto
@@ -29,17 +29,19 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should end up adding the local extension and merging
 // in the extensions from unittest.proto's Root.
 
-message ChainCMessage {
+message CMessage {
   optional int32 my_field = 1;
 }
 
-extend TestAllExtensions {
+extend objc.protobuf.tests.TestAllExtensions {
   optional int32 chain_c_extension = 10003;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_d.proto b/objectivec/Tests/unittest_extension_chain_d.proto
index f12040b..44d9ee8 100644
--- a/objectivec/Tests/unittest_extension_chain_d.proto
+++ b/objectivec/Tests/unittest_extension_chain_d.proto
@@ -29,21 +29,23 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest.proto";
 
 import "objectivec/Tests/unittest_extension_chain_b.proto";
 import "objectivec/Tests/unittest_extension_chain_c.proto";
 
+option objc_class_prefix = "Chain";
+
 // The root should end up needing to merge B (C will be merged into B, so it
 // doesn't need to be directly merged).
 
-message ChainDMessage {
-  optional ChainBMessage b = 1;
-  optional ChainCMessage c = 2;
+message DMessage {
+  optional BMessage b = 1;
+  optional CMessage c = 2;
 }
 
-extend TestAllExtensions {
+extend objc.protobuf.tests.TestAllExtensions {
   optional int32 chain_d_extension = 10004;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_e.proto b/objectivec/Tests/unittest_extension_chain_e.proto
index 6087fd0..9c7cea8 100644
--- a/objectivec/Tests/unittest_extension_chain_e.proto
+++ b/objectivec/Tests/unittest_extension_chain_e.proto
@@ -29,12 +29,14 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should end up just merging in unittest's Root.
 
-message ChainEMessage {
+message EMessage {
   optional TestAllTypes my_field = 1;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_f.proto b/objectivec/Tests/unittest_extension_chain_f.proto
index 520f895..33fcaf9 100644
--- a/objectivec/Tests/unittest_extension_chain_f.proto
+++ b/objectivec/Tests/unittest_extension_chain_f.proto
@@ -29,16 +29,18 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest_extension_chain_g.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should just be merging in the extensions from C's
 // Root (because G doesn't define anything itself).
 
 // The generated source will also have to directly import C's .h file so it can
 // compile the reference to C's Root class.
 
-message ChainFMessage {
-  optional ChainGMessage g = 1;
+message FMessage {
+  optional GMessage g = 1;
 }
diff --git a/objectivec/Tests/unittest_extension_chain_g.proto b/objectivec/Tests/unittest_extension_chain_g.proto
index 435e8e6..9044e46 100644
--- a/objectivec/Tests/unittest_extension_chain_g.proto
+++ b/objectivec/Tests/unittest_extension_chain_g.proto
@@ -29,13 +29,15 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests;
+package objc.protobuf.tests.chain;
 
 import "objectivec/Tests/unittest_extension_chain_c.proto";
 
+option objc_class_prefix = "Chain";
+
 // The Root for this file should just be merging in the extensions from C's
 // Root.
 
-message ChainGMessage {
-  optional ChainCMessage c = 1;
+message GMessage {
+  optional CMessage c = 1;
 }
diff --git a/objectivec/Tests/unittest_import.proto b/objectivec/Tests/unittest_import.proto
index 7d3ee25..8b8996f 100644
--- a/objectivec/Tests/unittest_import.proto
+++ b/objectivec/Tests/unittest_import.proto
@@ -28,10 +28,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Author: kenton@google.com (Kenton Varda)
-//  Based on original Protocol Buffers design by
-//  Sanjay Ghemawat, Jeff Dean, and others.
-//
 // A proto file which is imported by unittest.proto to test importing.
 
 syntax = "proto2";
@@ -41,11 +37,13 @@
 // Test public import
 import public "objectivec/Tests/unittest_import_public.proto";
 
-message ImportMessage {
+option objc_class_prefix = "Import";
+
+message Message {
   optional int32 d = 1;
 }
 
-enum ImportEnum {
+enum Enum {
   IMPORT_FOO = 7;
   IMPORT_BAR = 8;
   IMPORT_BAZ = 9;
@@ -53,7 +51,7 @@
 
 
 // To use an enum in a map, it must has the first value as 0.
-enum ImportEnumForMap {
+enum EnumForMap {
   UNKNOWN = 0;
   FOO = 1;
   BAR = 2;
diff --git a/objectivec/Tests/unittest_import_public.proto b/objectivec/Tests/unittest_import_public.proto
index c7f8ed8..05969b6 100644
--- a/objectivec/Tests/unittest_import_public.proto
+++ b/objectivec/Tests/unittest_import_public.proto
@@ -32,8 +32,10 @@
 
 syntax = "proto2";
 
-package objc.protobuf.tests.import;
+package objc.protobuf.tests.public_import;
 
-message PublicImportMessage {
+option objc_class_prefix = "PublicImport";
+
+message Message {
   optional int32 e = 1;
 }
diff --git a/objectivec/Tests/unittest_import_public_lite.proto b/objectivec/Tests/unittest_import_public_lite.proto
deleted file mode 100644
index 92d95b9..0000000
--- a/objectivec/Tests/unittest_import_public_lite.proto
+++ /dev/null
@@ -1,41 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc.  All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: liujisi@google.com (Pherl Liu)
-
-syntax = "proto2";
-
-package objc.protobuf.tests.import;
-
-option optimize_for = LITE_RUNTIME;
-
-message PublicImportMessageLite {
-  optional int32 e = 1;
-}
diff --git a/objectivec/Tests/unittest_mset.proto b/objectivec/Tests/unittest_mset.proto
index e53040b..9ff070f 100644
--- a/objectivec/Tests/unittest_mset.proto
+++ b/objectivec/Tests/unittest_mset.proto
@@ -28,68 +28,34 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Author: kenton@google.com (Kenton Varda)
-//  Based on original Protocol Buffers design by
-//  Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file is similar to unittest_mset_wire_format.proto, but does not
-// have a TestMessageSet, so it can be downgraded to proto1.
-
 syntax = "proto2";
 
-import "objectivec/Tests/unittest_mset_wire_format.proto";
+package objc.protobuf.tests.mset;
 
-package objc.protobuf.tests;
+option objc_class_prefix = "MSet";
 
-message TestMessageSetContainer {
-  optional objc.protobuf.tests.wireformat.TestMessageSet message_set = 1;
+// A message with message_set_wire_format.
+message Message {
+  option message_set_wire_format = true;
+  extensions 4 to max;
 }
 
-message NestedTestMessageSetContainer {
-  optional TestMessageSetContainer container = 1;
-  optional NestedTestMessageSetContainer child = 2;
-}
-
-message NestedTestInt {
-  optional fixed32 a = 1;
-  optional int32 b = 3;
-  optional NestedTestInt child = 2;
-}
-
-message TestMessageSetExtension1 {
-  extend objc.protobuf.tests.wireformat.TestMessageSet {
-    optional TestMessageSetExtension1 message_set_extension = 1545008;
+message MessageExtension1 {
+  extend Message {
+    optional MessageExtension1 message_set_extension = 1545008;
   }
   optional int32 i = 15;
-  optional objc.protobuf.tests.wireformat.TestMessageSet recursive = 16;
+  optional Message recursive = 16;
   optional string test_aliasing = 17 [ctype = STRING_PIECE];
 }
 
-message TestMessageSetExtension2 {
-  extend objc.protobuf.tests.wireformat.TestMessageSet {
-    optional TestMessageSetExtension2 message_set_extension = 1547769;
+message MessageExtension2 {
+  extend Message {
+    optional MessageExtension2 message_set_extension = 1547769;
   }
   optional string str = 25;
 }
 
-message TestMessageSetExtension3 {
-  extend objc.protobuf.tests.wireformat.TestMessageSet {
-    optional TestMessageSetExtension3 message_set_extension = 195273129;
-  }
-  optional NestedTestInt msg = 35;
-}
-
-// This message was used to generate
-// //net/proto2/python/internal/testdata/message_set_message, but is commented
-// out since it must not actually exist in code, to simulate an "unknown"
-// extension.
-// message TestMessageSetUnknownExtension {
-//   extend TestMessageSet {
-//     optional TestMessageSetUnknownExtension message_set_extension = 56141421;
-//   }
-//   optional int64 a = 1;
-// }
-
 // MessageSet wire format is equivalent to this.
 message RawMessageSet {
   repeated group Item = 1 {
diff --git a/objectivec/Tests/unittest_mset_wire_format.proto b/objectivec/Tests/unittest_mset_wire_format.proto
deleted file mode 100644
index d0150ad..0000000
--- a/objectivec/Tests/unittest_mset_wire_format.proto
+++ /dev/null
@@ -1,48 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc.  All rights reserved.
-// https://developers.google.com/protocol-buffers/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-//  Based on original Protocol Buffers design by
-//  Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains messages for testing message_set_wire_format.
-
-syntax = "proto2";
-package objc.protobuf.tests.wireformat;
-
-// A message with message_set_wire_format.
-message TestMessageSet {
-  option message_set_wire_format = true;
-  extensions 4 to max;
-}
-
-message TestMessageSetWireFormatContainer {
-  optional TestMessageSet message_set = 1;
-}
diff --git a/objectivec/Tests/unittest_objc.proto b/objectivec/Tests/unittest_objc.proto
index 63da921..aed200b 100644
--- a/objectivec/Tests/unittest_objc.proto
+++ b/objectivec/Tests/unittest_objc.proto
@@ -34,6 +34,9 @@
 
 package objc.protobuf.tests;
 
+// Explicit empty prefix, tests some validations code paths also.
+option objc_class_prefix = "";
+
 // Used to check that Headerdocs and appledoc work correctly. If these comments
 // are not handled correctly, Xcode will fail to build the tests.
 message TestGeneratedComments {
diff --git a/objectivec/Tests/unittest_objc_startup.proto b/objectivec/Tests/unittest_objc_startup.proto
index 711431c..f2bf9d5 100644
--- a/objectivec/Tests/unittest_objc_startup.proto
+++ b/objectivec/Tests/unittest_objc_startup.proto
@@ -31,19 +31,20 @@
 syntax = "proto2";
 
 package objc.protobuf.tests.startup;
+option objc_class_prefix = "TestObjCStartup";
 
-message TestObjCStartupMessage {
+message Message {
   extensions 1 to max;
 }
 
-extend TestObjCStartupMessage {
+extend Message {
   // Singular
   optional    int32 optional_int32_extension    = 1;
   repeated    int32 repeated_int32_extension    = 2;
 }
 
-message TestObjCStartupNested {
-  extend TestObjCStartupMessage {
+message Nested {
+  extend Message {
     optional string nested_string_extension = 3;
   }
 }
diff --git a/objectivec/Tests/unittest_runtime_proto2.proto b/objectivec/Tests/unittest_runtime_proto2.proto
index 3be7f33..12c2b1c 100644
--- a/objectivec/Tests/unittest_runtime_proto2.proto
+++ b/objectivec/Tests/unittest_runtime_proto2.proto
@@ -29,8 +29,11 @@
 
 syntax = "proto2";
 
+// Explicit empty prefix, tests some validations code paths also.
 package objc.protobuf.tests;
 
+option objc_class_prefix = "";
+
 message Message2 {
   enum Enum {
     FOO = 0;
diff --git a/objectivec/Tests/unittest_runtime_proto3.proto b/objectivec/Tests/unittest_runtime_proto3.proto
index 6dacbbb..d6d4380 100644
--- a/objectivec/Tests/unittest_runtime_proto3.proto
+++ b/objectivec/Tests/unittest_runtime_proto3.proto
@@ -29,8 +29,11 @@
 
 syntax = "proto3";
 
+// Explicit empty prefix, tests some validations code paths also.
 package objc.protobuf.tests;
 
+option objc_class_prefix = "";
+
 message Message3 {
   enum Enum {
     FOO = 0;
