LWJGL/OpenGL scaling textures weirdly

I am making a platformer which I started developing with default java functions, but now am switching to OpenGL for everything. I have done everything like I always do with OpenGL, and what I did works fine in my other OpenGL projects. Now my problem is that LWJGL/OpenGL is scaling my textures in a very strange way.
Screenshot and Image to be drawn
It seems to be related to my screen’s aspect ratio. (8:5)
I already had to flip the screen to make it the right way around using the following code, but that offsets everything, so I need a fix to that too.


glScalef(1.0f, -1.0f, 1.0f);
glTranslatef(0f, -720f, 0f);

(this is what happens when I don’t flip)
But as you can see the text is working fine, it’s just the textured rect, and it isn’t even straight on the bottom.
I have uploaded my two files containing OpenGL code to PasteBin. Metamorph.java: http://pastebin.com/Lz9tEt5f and Renderer.java: http://pastebin.com/9FJMwM9u
Here are the most relevant snippets from those two classes:

Metamorph.java (main class)


    public static void initGL()
    {
            glMatrixMode(GL_PROJECTION);
            glLoadIdentity();
            glOrtho(0, Display.getWidth(), 0, Display.getHeight(), 1, -1);
            glEnable(GL_BLEND);
            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
            glMatrixMode(GL_MODELVIEW);
            glClearColor(0, 0, 0, 1);
            glDisable(GL_DEPTH_TEST);
    }

    public void render()
    {
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

            glLoadIdentity();
            glScalef(1.0f, -1.0f, 1.0f);
            glTranslatef(0f, -720f, 0f);
            //glScalef(1280f/800, 720f/500, 1f);

            renderer.render();

            Display.update();
            Display.sync(60);
    }

Renderer.java (rendering stuff)


    private void renderMainMenuWithGL()
    {
            //System.out.println("Main Menu!");

            glColor4f(1, 1, 1, 1);

            try
            {
                    Texture bg = loadTexture("mockery");
                    bg.bind();
            } catch (Exception e)
            {
                    e.printStackTrace();
            }

            //drawQuad(0, 0, 1280, 720, 0, 0, 1280, 720);
            glPushMatrix();
            {
                    glBegin(GL_QUADS);
                    glTexCoord2f(0, 0);glVertex2f(0, 0);
                    glTexCoord2f(0, 1);glVertex2f(0, 720);
                    glTexCoord2f(1, 1);glVertex2f(1280, 720);
                    glTexCoord2f(1, 0);glVertex2f(1280, 0);
                    glEnd();
            }
            glPopMatrix();

            TrueTypeFont f = loadFont(MAINFONT, Font.PLAIN, 50);
            TrueTypeFont fb = loadFont(MAINFONT, Font.PLAIN, 48);

            int sel = -1;
            if(Mouse.getX() > 1000 && Mouse.getX() < 1240 && Mouse.getY() > 282.5F && Mouse.getY()< 737.5F)
                    sel = Math.round((Mouse.getY() - 337.5F)/75F);

Just ignore the times I used 1280 and 720 instead of the actual Display methods.
I am also open to advice on file structure/what I did wrong elsewhere, but keep in mind this is heavily WIP