Let’s start with The USS John McCain.
The USS McCain is not named for the late Senator (and former Navy pilot) but for his father (grandfather?), a Navy Admiral.
The destroyer USS John S. McCain is named after World War II ADMIRALs John S. McCain, Sr. and John S. McCain, Jr. It was originally NOT named after the senator.
Unfortunately, the senator’s name was added to the list after his death when it was rededicated. Thus we have only to remove the rededication that added John III.