diff --git a/src/objective-c/tests/InteropTests.m b/src/objective-c/tests/InteropTests.m
index add63614e79f7ae2e41b37ad876d73f55be1c13a..f04a7e6441f86f4f8ae85b82dbac78477e66ba96 100644
--- a/src/objective-c/tests/InteropTests.m
+++ b/src/objective-c/tests/InteropTests.m
@@ -321,51 +321,6 @@
   [self waitForExpectationsWithTimeout:4 handler:nil];
 }
 
-- (void)testErroneousPingPongRPC {
-  XCTAssertNotNil(self.class.host);
-  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"PingPong"];
-
-  GRXBufferedPipe *requestsBuffer = [[GRXBufferedPipe alloc] init];
-
-  __block int index = 0;
-
-  RMTStreamingOutputCallRequest *request =
-      [RMTStreamingOutputCallRequest messageWithPayloadSize:@256
-                                      requestedResponseSize:@256];
-
-  [requestsBuffer writeValue:request];
-
-  [_service fullDuplexCallWithRequestsWriter:requestsBuffer
-                                eventHandler:^(BOOL done,
-                                               RMTStreamingOutputCallResponse *response,
-                                               NSError *error) {
-      if (index == 0) {
-        XCTAssertNil(error, @"Finished with unexpected error: %@", error);
-        XCTAssertNotNil(response, @"Event handler called without an event.");
-        XCTAssertFalse(done);
-
-        id expected = [RMTStreamingOutputCallResponse messageWithPayloadSize:@256];
-        XCTAssertEqualObjects(response, expected);
-        index += 1;
-
-        RMTStreamingOutputCallRequest *request =
-        [RMTStreamingOutputCallRequest messageWithPayloadSize:@256
-                                        requestedResponseSize:@0];
-        RMTEchoStatus *status = [RMTEchoStatus message];
-        status.code = 7;
-        status.message = @"Error message!";
-        request.responseStatus = status;
-        [requestsBuffer writeValue:request];
-      } else {
-        XCTAssertNil(response);
-        XCTAssertNotNil(error);
-
-        [expectation fulfill];
-      }
-  }];
-  [self waitForExpectationsWithTimeout:4 handler:nil];
-}
-
 #ifndef GRPC_COMPILE_WITH_CRONET
 // TODO(makdharma@): Fix this test
 - (void)testEmptyStreamRPC {
diff --git a/src/objective-c/tests/RemoteTestClient/messages.proto b/src/objective-c/tests/RemoteTestClient/messages.proto
index b8b8b668d04fddb4b7edd01ee155ea516f96b5e1..85d93c2ff9641d3e428625f301ebaa3eee6e6fed 100644
--- a/src/objective-c/tests/RemoteTestClient/messages.proto
+++ b/src/objective-c/tests/RemoteTestClient/messages.proto
@@ -1,5 +1,4 @@
-
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
 // All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or without
@@ -36,45 +35,34 @@ package grpc.testing;
 
 option objc_class_prefix = "RMT";
 
-// TODO(dgq): Go back to using well-known types once
-// https://github.com/grpc/grpc/issues/6980 has been fixed.
-// import "google/protobuf/wrappers.proto";
-message BoolValue {
-  // The bool value.
-  bool value = 1;
-}
-
-// DEPRECATED, don't use. To be removed shortly.
 // The type of payload that should be returned.
 enum PayloadType {
   // Compressable text format.
   COMPRESSABLE = 0;
+
+  // Uncompressable binary format.
+  UNCOMPRESSABLE = 1;
+
+  // Randomly chosen from all other formats defined in this enum.
+  RANDOM = 2;
 }
 
 // A block of data, to simply increase gRPC message size.
 message Payload {
-  // DEPRECATED, don't use. To be removed shortly.
   // The type of data in body.
   PayloadType type = 1;
   // Primary contents of payload.
   bytes body = 2;
 }
 
-// A protobuf representation for grpc status. This is used by test
-// clients to specify a status that the server should attempt to return.
-message EchoStatus {
-  int32 code = 1;
-  string message = 2;
-}
-
 // Unary request.
 message SimpleRequest {
-  // DEPRECATED, don't use. To be removed shortly.
   // Desired payload type in the response from the server.
   // If response_type is RANDOM, server randomly chooses one from other formats.
   PayloadType response_type = 1;
 
   // Desired payload size in the response from the server.
+  // If response_type is COMPRESSABLE, this denotes the size before compression.
   int32 response_size = 2;
 
   // Optional input payload sent along with the request.
@@ -85,18 +73,6 @@ message SimpleRequest {
 
   // Whether SimpleResponse should include OAuth scope.
   bool fill_oauth_scope = 5;
-
-  // Whether to request the server to compress the response. This field is
-  // "nullable" in order to interoperate seamlessly with clients not able to
-  // implement the full compression tests by introspecting the call to verify
-  // the response's compression status.
-  BoolValue response_compressed = 6;
-
-  // Whether server should return a given status
-  EchoStatus response_status = 7;
-
-  // Whether the server should expect this request to be compressed.
-  BoolValue expect_compressed = 8;
 }
 
 // Unary response, as configured by the request.
@@ -115,12 +91,6 @@ message StreamingInputCallRequest {
   // Optional input payload sent along with the request.
   Payload payload = 1;
 
-  // Whether the server should expect this request to be compressed. This field
-  // is "nullable" in order to interoperate seamlessly with servers not able to
-  // implement the full compression tests by introspecting the call to verify
-  // the request's compression status.
-  BoolValue expect_compressed = 2;
-
   // Not expecting any payload from the response.
 }
 
@@ -133,22 +103,16 @@ message StreamingInputCallResponse {
 // Configuration for a particular response.
 message ResponseParameters {
   // Desired payload sizes in responses from the server.
+  // If response_type is COMPRESSABLE, this denotes the size before compression.
   int32 size = 1;
 
   // Desired interval between consecutive responses in the response stream in
   // microseconds.
   int32 interval_us = 2;
-
-  // Whether to request the server to compress the response. This field is
-  // "nullable" in order to interoperate seamlessly with clients not able to
-  // implement the full compression tests by introspecting the call to verify
-  // the response's compression status.
-  BoolValue compressed = 3;
 }
 
 // Server-streaming request.
 message StreamingOutputCallRequest {
-  // DEPRECATED, don't use. To be removed shortly.
   // Desired payload type in the response from the server.
   // If response_type is RANDOM, the payload from each response in the stream
   // might be of different types. This is to simulate a mixed type of payload
@@ -160,9 +124,6 @@ message StreamingOutputCallRequest {
 
   // Optional input payload sent along with the request.
   Payload payload = 3;
-
-  // Whether server should return a given status
-  EchoStatus response_status = 7;
 }
 
 // Server-streaming response, as configured by the request and parameters.
@@ -170,17 +131,3 @@ message StreamingOutputCallResponse {
   // Payload to increase response size.
   Payload payload = 1;
 }
-
-// For reconnect interop test only.
-// Client tells server what reconnection parameters it used.
-message ReconnectParams {
-  int32 max_reconnect_backoff_ms = 1;
-}
-
-// For reconnect interop test only.
-// Server tells client whether its reconnects are following the spec and the
-// reconnect backoffs it saw.
-message ReconnectInfo {
-  bool passed = 1;
-  repeated int32 backoff_ms = 2;
-}