When I was shopping for my mortgage, I got pre-approved and everything after talking with the bank loan officer personally. They told me all was fine and there were no potential problems. But when it came to actually applying for the mortgage after I closed, the bank took 1 week (which is a lot if you have a fixed closing date in a rapidly growing housing market) to discover they can only accept either a copy of an unexpired L1, or H1B visa, or a green card... They did not know about AOS, a letter from my lawyer to explain it was also not acceptable, I even had them escalate it to their main office. No dice. "Equal Opportunity Lender" they call themselves, I think not! Well at least they didn't charge me the mortgage application fee...
Other lenders that I contacted after that debacle had no such problem, and luckily were still able to get all the paperwork done before my deadline. And now I am enjoying my new place, paying my mortgage every month. That was one bank that will never see my business again. They almost caused me to lose my purchase contract and my earnest money. One of my neighbours that is selling a very similar property is actually getting a price that is more than I can afford. If I would have lost this deal, I couldn't have afforded to live where I am now.
Get a broker that works with many different lenders and that can submit your prepared application with a whole bunch of them, and he should be able to find you a lender that will give you your mortgage. Sure it means that you'll have to pay the broker a brokerage fee in addition to the lenders underwriting fee, but you get something back for it. At least, if your income, expenses, credit score and history is good enough for it...
If you're here legally in AOS status, and have the income and have built that good credit history to prove that you're a good borrower that can make the payments, you deserve the same loan treatment as people on a temporary H1B or L1 visa, or green cards, or citizens. Anything different I call discrimination.