There are a few options. Here is one 'safe' option and one 'unsafe' option.
Safe option:
Write a macro to rename a variable to its name without the _1A.;
Arguments: var = variable name, len = length desired of final variable name.;
%macro rename_shorter(var=,len=);
&var. = %substr(&var.,1,&len.)
%mend rename_shorter;
Create a list of calls from dictionary.columns;
proc sql;
select cats('%rename_shorter(var=',name,',len=',length(name)-3,')')
into :renamelist separated by ' '
from dictionary.columns
where libname='SASHELP' and upcase(memname)='CLASS';
quit;
Call that list;
data want;
set sashelp.class(rename=(&renamelist.));
run;
An unsafe option, in the sense that it doesn't check that things are aligned correctly, is
proc sql;
create table want as
select * from have_namedright H
outer union corr
select * from have_namedwrong W
;
quit;