Mexicans aren't flocking to the US for spacious fields and luscious forests. They're going for the economic infrastructure (and associated lifestyle) through which America has developed since independence. How do they magically have a right to use freeways they haven't paid to construct? Healthcare in which they haven't invested? etc. etc. It is noble of a country to take in the hungry, oppressed, and poor. And developed countries do - they're called refugees, and they take as many as they can without harming the country. But economic migrants are another story - they have no right to come illegally to essentially leech off of what they haven't paid into. A country can decide to accept them if they think it will be to their benefit, but there is no moral onus to do it.